,
     при этом имя_каталога  записывается  в  вершину  стека,
     остальные элементы стека сохраняются с новыми номерами.
     Форма    pushd    +число    выполняет    команду     cd
                           - 63 -
     имя_номер_(1+число).  При этом имя_номер_(1+число) ста-
     вится в вершину стека, а число имен каталогов переписы-
     ваются  в конец стека в том порядке, в котором они сле-
     довали от вершины стека, другие элементы стека остаются
     без изменений.
rehash
     обновить хеш-таблицу.
repeat число команда
     команда repeat позволяет повторить  выполнение  команды
     указанное  число  раз.   Команда  должна  быть  одна  в
     командной строке, она  не  должна  быть  последователь-
     ностью команд, псевдонимом или конвейером.
      set
      set имя
      set имя = слово
      set имя[индекс] = слово
      set имя = (список_слов)
      set список_присваиваний
     первая форма команды set отображает значения всех пере-
     менных  интерпретатора  команд.  Переменные,  которые в
     качестве своих значений имеют не одно слово,  отобража-
     ются как заключенный в скобки список слов. Вторая форма
     присваивает указанному имени пустую  строку,  третья  -
     слово,  четвертая  -  значение  слова с номером индекс,
     пятая - список слов.  Последняя форма используется  для
     указания списка присваиваний - в одной командной строке
     несколько присваиваний.   Во  всех  случаях  происходят
     расширения  псевдонимов  командных строк и имен файлов.
     Подстановка переменных осуществляется   перед  выполне-
     нием присваиваний. Перед операциями над элементами мас-
     сива его необходимо полностью определить. Не  обрабаты-
     ваются массивы с переменными или неопределенными грани-
     цами.
      setenv
      setenv имя значение
     первая форма  выводит  значение  переменных  окружения,
     вторая  их устанавливает.  Удалить переменную окружения
     можно командой unsetenv.
      shift
      shift переменная
     осуществляет левый сдвиг списка слов переменной.  Левый
     элемент  списка исчезает. Попытка осуществить shift для
                           - 64 -
     пустого списка приводит к состоянию ошибки.
source файл
     предназначена  для  выполнения  командного  файла   без
     порождения нового интерпретатора.  Команды source могут
     быть вложенными.  Ошибка  в  команде  source  на  любом
     уровне  завершает выполнение.  Вызов команды source без
     аргументов порождает состояние ошибки.
      stop %внутренний_идентификатор_процесса
      stop %шаблон_имени_процесса
     останавливает выполнение асинхронного процесса.
suspend
     останавливает выполнение интерпретатора.
      switch( входная_строка )
             case образец_1:
                     ...
                     breaksw
             ...
             default:
                     ...
      endsw
     в образцах вариантов case сначала  выполняются  подста-
     новки.   В  образцах  вариантов case можно использовать
     шаблоны имен файлов *, ? и  [...].   Образцы  вариантов
     case  последовательно сравниваются с указанной в switch
     входной строкой.  Если не выявлено  совпадение  образца
     со   входной  строкой,  выполнение  продолжается  после
     default. Слова case и default должны стоять  первыми  в
     командной строке.  Оператор breaksw передает управление
     на строку, следующую за endsw.  Если в варианте case не
     указан  оператор  breaksw, то при совпадении с образцом
     выполняются все строки до первого breaksw или  default.
     Если  не  обнаружено  совпадение  с  образцом и default
     отсутствует, выполнение продолжается после endsw.
      time
      time команда
     при  отсутствии  параметров  печатается  итог  времени,
     израсходованного  интерпретатором  и  его потомками.  В
     качестве команды нельзя использовать псевдонимы.
      umask
      umask маска
                           - 65 -
     по умолчанию файлу устанавливается код доступа, который
     определяется  маской.   Файл будет иметь код доступа, в
     котором  маскированы  (равны  0)  биты,   установленные
     (равны  1) в маске.  Пусть маска имеет вид 123.  Первая
     цифра относится к маскированию битов доступа  для  вла-
     дельца файла и администратора, вторая - к битам доступа
     группы, а третья - к битам доступа всех остальных поль-
     зователей.   Значение  маски указывается в восьмеричном
     коде. Обычно  значением  маски  является  002,  которое
     задает  любой  доступ  для  пользователей своей группы,
     доступ для чтения и выполнения другим пользователям,  и
     022,  которое  определяет  любой доступ (за исключением
     записи) для пользователей своей группы и  всех  прочих.
     Чтобы   узнать  текущее  значение маски, надо выполнить
     команду umask без аргумента.
unalias псевдоним ...
     все псевдонимы, имена которых соответствуют  указанным,
     отменяются.  Следовательно, unalias * удаляет все псев-
     донимы.  При запуске команды без аргументов порождается
     состояние ошибки.
unhash
     запрещает использовать хеш-таблицу при поиске команды.
      unlimit   ресурс
      unlimit
     снимает ограничение на ресурс. Если ресурс  не  указан,
     снимаются ограничения на все ресурсы.
unset шаблон
     удаляются все переменные, имена  которых  соответствуют
     указанному шаблону.  Таким образом, unset * удаляет все
     переменные, установленные командой set.
unsetenv имя
     удаляется переменная из окружения.
wait
     ожидание всех выполняемых процессов.  Пока  выполняется
     команда  wait,  приглашение не печатается. Команда wait
     выполняется,  пока  не  завершатся  все  запущенные  на
     выполнение процессы.  При прерывании выполнения команды
     wait (CTRL/C или СУ/C) сообщаются имена и  номера  всех
     процессов, для которых выполнялось ожидание.
      while( выражение )
              ...
      end
                           - 66 -
     цикл выполняется, пока истинно (не равно нулю) значение
     выражения.   Ключевые  слова  while  и end должны нахо-
     диться на отдельных строках. В теле цикла можно исполь-
     зовать  break для выхода из цикла и continue для возоб-
     новления следующей итерации цикла без завершения  теку-
     щей.
                           - 67 -
                         СОДЕРЖАНИЕ
    АННОТАЦИЯ .........................................    2
1.  Командный язык C-shell ............................    3
1.1.  Лексическая структура языка C-shell .............    3
1.2.  Форматы командных строк, перемещения по  файловой
      системе .........................................    6
1.3.  Управление вводом и выводом .....................    9
1.4.  Управление процессами ...........................   11
1.5.  Шаблоны имен файлов и каталогов .................   17
1.6.  Подстановки значений переменных .................   19
1.7.  Модификаторы переменных .........................   26
1.8.  Выражения .......................................   30
1.9.  Операторы языка C-shell .........................   35
1.10. Командные файлы .................................   39
1.11. Протоколирование, средства работы с протоколом ..   44
1.12. Переменные интерпретатора csh ...................   49
1.13. Специальные файлы ...............................   55
1.14. Встроенные команды и операторы ..................   57
                           - 68 -