Организация UNIX-систем и ОС Solaris



         

Язык sh


В языке sh существуют операторы ветвления и циклов. Ниже дано описание этих операторов. В нем жирным шрифтом выделены ключевые слова. Конструкция "команды" подразумевает одну или несколько команд командного процессора или вызовов программ, которые отделяются друг от друга разделителями (точкой с запятой или переводом строки). При вводе многострочных операторов в командной строке, командный процессор начинает новую строку приглашением "продолжение команды" (его вид определяется значением переменной среды окружения PS2 или prompt2).

В операторах циклов допустимы команды break (прерывание цикла, управление передается за конец цикла) и continue (передача управления на начало цикла, переход к следующей итерации). Эти команды действуют одинаково в любых командных процессорах, так как они реализованы и в языке sh, и в языке csh.

Оператор ветвления if:

if условие then команды else команды fi

В bash, ksh и новых версиях sh возможна конструкция elseif (вложенное ветвление):

if условие then команды elseif условие then команды fi else команды fi

Оператор множественного ветвления case:

case значение_переменной in значение1) команды; break; значение2) команды; break; значение3) команды; break; *) команды; esac

Знак "звездочка" (*) означает "все остальные значения", т.е. если значение переменной не равно ни значению1, ни значению2, ни значению3.

Операторы цикла while (выполнять, пока условие истинно) и until (выполнять до тех пор, пока условие станет истинным):

while условие do команды done

until условие do команды done

Все эти операторы содержат неотъемлемый элемент, обозначенный нами как условие. Это - вызов любой команды (в том числе другой скрипт или конвейер), возвращающей код завершения.

Условие считается истинным, если код завершения равен нулю, и ложным - если код завершения не равен нулю. Любая программа в UNIX возвращает код завершения: нулевой - в случае успешного выполнения и ненулевой - в противном случае. Значения кодов завершения программ можно выяснить с помощью руководства к ним, например, man.

Для проверки условий, относящихся к объектам файловой системы, применяется программа test. В некоторых командных интерпретаторах есть встроенная команда test , иногда test - это отдельная программа. С помощью test часто проверяется наличие файла или каталога в файловой системе:




Содержание  Назад  Вперед