Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
144
Добавлен:
20.02.2016
Размер:
727.07 Кб
Скачать

12.2. Позиционные параметры

$ chmod +x hello $ ./hello

Hello word!

Можно запустить командный файл без порождения нового процесса. Главным следствием этого является то, что все установки переменных, сделанные в скрипте, будут иметь силу в текущем shell’е:

$ echo $BYE

$ echo ’BYE="Good Bye!"’ >> hello $ . ./hello

Hello word! $ echo $BYE Good Bye!

12.2Позиционные параметры

В shell применяется набор зарезервированных переменных:

Переменная

Bourne-Shell

C-Shell

Korn-Shell и выше

Количество аргумен-

$#

$#argv

$#

тов

 

 

 

 

 

 

 

Все аргументы

$*

$*,$argv*,$argv[*]

$*

n-ый аргумент

$n

$n,argv[n]

$n,$[n]

Имя программы

$0

$0

$0

Последний аргумент

 

$argv[$#argv]

 

12.3Основные конструкции и операторы командного языка

12.3.1Условный интерпретатор if

Bourne-Shell:

if выражение; then команды; [else команды]; fi

C-Shell:

if выражение; then команды; [else if выражение команды]; [else команды]; endif

Korn-Shell:

if выражение; then команды; [elif выражение команды]; [else команды]; fi

Если выражение истинно, то выполняются команды первого уровня. Если же это не так, то либо выполняются команды второго уровня, стоящие после оператора else, либо вычисляется следующее

выражение.

12.3.2 Оператор переключения

Bourne-Shell:

case строка in образец) команды ;; *) команды ;; esac

71

12.3. Основные конструкции и операторы командного языка

C-Shell:

switch (строка) case образец: команды breaksw default: команды breaksw endsw

Оператор работает как переключатель между различными альтернативами, описываемыми образцами. Если ни один из образцов не соответствует указанной строке, выполняются команды, указанные в умолчании. В образцах могут использоваться метасимволы.

12.3.3 Оператор цикла while

Bourne-Shell:

while выражение; do команды; done C-Shell:

while выражение команды; end

Цикл, выполняющий команды, пока выражение является истинным.

12.3.4Оператор цикла for

Bourne-Shell:

for переменная in список; do команды; done

C-Shell:

foreach переменная (список) команды; end

Цикл, выполняющий команды, выбирая элементы из списка и присваивая переменной значение этого элемента.

12.3.5Оператор цикла until

Bourne-Shell:

until выражение; do команды; done

Цикл, выполняющий команды, пока выражение является ложным.

12.3.6Вычисление выражений

Код завершения любой программы в условных интерпретаторах истолковывается как истина, если он равен 0, в противном случае — ложь. Существуют команды true и false, единственная функция которых состоит в том, чтобы возвращать истину или ложь соответственно.

Оператор test или его аналог [] (см. Разд. 7.8.4) часто используется для выполнения различных проверок, связанных с файловой структурой.

72

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