Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lab1 / Лекция 1. Язык командного интерпретатора Bash.pdf
Скачиваний:
1
Добавлен:
30.05.2025
Размер:
843.71 Кб
Скачать

ОБЪЯВЛЕНИЕ ПЕРЕМЕННЫХ

Общийсинтаксис:

<имя_переменной>=<значение> (безпробеловслеваисправаотзнака =) <имя_переменной>=’<значение>’ – еслизначение переменной состоит изнесколькихслов Указаниетипапеременной: declare [опция] <имя_переменной>=<значение> Безобъявленияпеременнойкоманда declare выводитзначения всехпеременныхвтекущемокружении Удалениепеременной: unset <имя_переменной>

 

Опция

Значение

 

-a

Переменная обрабатывается какмассив

 

-f

При использовании данной опции без объявления

 

 

переменной выводит список ранее объявленных функций,

 

 

включая определение этих функций

 

-F

При использовании данной опции без объявления

 

 

переменной выводит список имен ранее объявленных

 

 

функций (без самого определения)

 

-i

Переменная обрабатывается как целое число

 

-r

Создает переменную только для чтения (аналогично команде

 

 

readonly), которую нельзя переопределить, включая unset

 

-x

Позволяет экспортировать переменную за пределы текущего

 

 

окружения аналогично команде export

10

 

Примеры объявленияпеременных:

$

x=10

 

$

str=ʺString valueʺ

 

$

words=’Multiple words value’

Пример использования команды declare:

$

val1=10 val2=5

res=$val1*$val2 ?

$ res=val1*val2

$

echo $res

 

val1*val2

 

$ declare –i val3=10 val4=5

$

declare –i result2

 

$

result2=val3*val4

 

$

echo $result2

 

50

РАБОТА С ПЕРЕМЕННЫМИ

Объявление: $ y=10

$ B=ʺʺ $ x = 3

$ s=String string $ s=ʺString stringʺ

Обращениекпеременным: $ echo y value is $y

$ echo y value is ${y}

$

words=’Many

spaces

between words’

$

echo $words

 

 

Many spaces between words

$ echo ʺ$wordsʺ

between

words

Many spaces

Вычислениеарифметического выражения $((<выражение>)): $ x=3 y=4

$ r=$(( $x + $y )) # => 7

$ r=$(( ${x} + ${y} )) # => 7 $ r=$(( x + y )) # => 7

$ r=$( x + y )

Записьрезультатавыполнениякоманды $(<команда>): $ a=`ls`

$ a=$(ls)

То, что записано внутри скобок выполняется средствами ОС, арезультатзаписывается впеременную

$ x=4

$ b=$(( $x + 1 + 5 ))

$ d=$( expr $x + 1 + 5 ) $ echo $b $d

10 10

11

ОСНОВНЫЕ ОПЕРАЦИИ

Арифметические операторыэквивалентныаналогамв C:

Оператор Значение

++Увеличение на 1 (префикс и постфикс)

--Уменьшение на 1 (префикс и постфикс)

+Сложение

-Вычитание

*Умножение

/Деление

%Остаток от деления

**Возведение в степень

<<Побитовый сдвиг влево

>>Побитовый сдвиг вправо

&Побитовое И

|

Побитовое ИЛИ

~

Побитовое НЕ

 

 

!Логическое НЕ

^Побитовое исключающее ИЛИ

12

Операторыотношения:

Оператор

Значение

<

Меньше

>

Больше

<=

Меньше или равно

>=

Больше или равно

==

Равно

!=

Не равно

&&

Логическое И

||

Логическое ИЛИ

Аналогично declare для вычисления арифметического

выражения

можно

 

использовать

конструкцию

let <имя_переменной>=<выражение>:

 

$ x=4

 

 

 

 

$ let c=$x*2+1+5

НО let c= ʺ(2 + 3)*$xʺ

$ let c=’(2 + 3)*4’

$ d=$( expr $x*2 + 1

+ 5 )

 

$ d=$( expr $x * 2 +

1 + 5 )

 

$ d=$( expr $x \* 2

+ 1 + 5 )

 

$ d=$( expr $x\*2 +

1 + 5 )

 

РАСКРЫТИЕ СКОБОК

Общаяформамеханизмараскрытия фигурныхскобок: [<преамбула>]{<вариант1>,<вариант2>,,<вариантN>} [<постскриптум>]

Примеры использования:

 

ca{r,n,t}s

=>

 

cars cans cats

ca{r,n,t,{f,k,v}e}s

=> cars cans cats cafes cakes caves

Формированиепоследовательностибуквиличисел (сверсии bash 3.0):

{1..8}

=>

1

2

3

4 5 6 7 8

{a..h}

=>

a b

c d e f g h

Использование сшаблонами:

$ ls *.{csh,sh}

 

=>

script1.csh test.csh lab1.sh

13

Соседние файлы в папке lab1