Операционная система UNIX - страница 33

стр.

>exit [n]Завершает работу текущего интерпретатора (или скрипта) с кодом возврата >n. По умолчанию код возврат равен 0
>export [name1], [name2...]Помещает переменные, указанные в качестве аргументов, в окружение текущего shell, делая их тем самым экспортируемыми, т.е. доступными для запускаемых из интерпретатора программ
>hash [-r] [command, command...]Для каждой команды, указанной в качестве аргумента, запоминается полный путь. Таким образом, при последующих вызовах этих команд поиск не производится. Ключ >-r удаляет все ранее запомненные пути. Если команда hash вызвана без аргументов, то выводится информация о запомненных путях
>jobsЕсли командный интерпретатор поддерживает управление заданиями, данная команда выводит список текущих заданий. См. раздел «Система управления заданиями», далее в этой главе
>kill [-sig] pid1 pid2...Посылает сигнал, определённый параметром sig, процессам, указанным параметрами >pid. Параметр >pid может быть либо идентификатором процесса, либо идентификатором задания, если поддерживается управление заданиями (в этом случае идентификатор должен предваряться символом '%' в соответствии синтаксисом системы управления заданиями). См. раздел «Система управления заданиями далее в этой главе
>pwdВыводит имя текущего каталога
>read var1 var2 ...Построчно считывает слова (т.е. группы символов, разделённые пробелами) из стандартного потока ввода, последовательно присваивая переменным >var, указанным в качестве параметров значения, равные считанным словам. Если число слов в строке превышает число переменных, то последней переменной присваивается значение, равное остатку строки
>return [n]Осуществляет выход из функции с кодом возврата >n. По умолчанию возвращается код последней команды
>setПри задании без параметров выводит список определённых переменных
>shift [n]Производит сдвиг позиционных параметров, хранящихся в $1, $2 и т.д. на >n позиций. По умолчанию сдвиг производится на одну позицию
>testВычисляет условное выражение. Возвращает значение 0 — истина, или 1 — ложно. См раздел условные выражения далее в этой главе
>timesВыводит суммарное время использования процессора программами, запущенными из текущего командного интерпретатора
>trap command sig1 sig2 ...Определяет команду >command, которая будет выполнена при получении сигналов, указанных в качестве аргументов >sig. См. раздел "Сигналы" ранее в этой главе
>type nameПоказывает, как >name будет интерпретироваться командным интерпретатором
>ulimitВыводит или устанавливает значение пределов, ограничивающих использование задачей системных ресурсов (времени процессора, памяти, дискового пространства). Ограничения будут рассматриваться в главе 2
>umask nnnУстанавливает маску прав доступа для вновь создаваемых файлов равной >nnn
>unset var1 var2 ...Удаляет переменные, указанные в качестве аргументов, из списка определенных переменных командного интерпретатора. Некоторые переменные, например PATH, PS1, PS2, не могут быть удалены
>wait pidОжидает завершения выполнения процесса с идентификатором >pid и возвращает его код возврата

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

Синтаксис функции имеет следующий вид:

>function() {

> command1

> command2

> ...

>}

Как можно заметить, телом функции является обычный скрипт shell.

В качестве примера приведем функцию mcd, позволяющую отобразить в приглашении shell имя текущего каталога.

>mcd() {

> cd $*

> PS=`pwd`

>}

Подстановки, выполняемые командным интерпретатором

Прежде чем выполнить команду, указанную либо в командной строке, либо в скрипте, командный интерпретатор производит определенную последовательность действий:

1. Анализирует синтаксис команды. В случае, если обнаружена синтаксическая ошибка, выводится соответствующее сообщение. Естественно, shell анализирует командную строку в соответствии с синтаксисом собственного языка, а не семантику вызова конкретной команды, например, наличие тех или иных аргументов.