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

       

Язык csh


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

Языки sh и csh отличаются синтаксисом операторов и некоторыми командами. Помните, что:

  • в csh имена системных переменных среды окружения пишутся буквами нижнего регистра;
  • в csh нет оператора until; почти все операторы называются иначе, чем в sh.

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

if (условие)команда

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

Допускается любое число вложенных операторов elseif, при этом нужен только один оператор endif.

Отступы в операторе ветвления не важны, но операторы else и endif должны начинаться с новой строки, оператор if должен следовать за else или начинаться с новой строки.

Оператор множественного ветвления в csh называется switch:

switch (строка) case строка1: команды breaksw case строка2: команды breaksw default: команды breaksw endsw

Опреатор switch в csh выполняется подобно оператору switch из языка С, команда breaksw передает управление за оператор endsw.

Оператор while действует так же, как while в sh, однако синтаксис у него немного иной:

while (условие) команды end

Оператор цикла for в csh назвали foreach, подобно одноименному оператору из Perl:

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

Если оператор foreach вводится в командной строке, то csh на каждой новой строке выводит приглашение "foreach?" Это означает, что ввод оператора еще не закончен и его можно продолжать, ввод завершается финальным словом end в начале строки.

Для ввода информации в скриптах на языке csh используют конструкцию $< (подстановка строки из входного потока):

echo " Enter your name:" setenv name $< echo "Name is $name"



Содержание раздела