next up previous contents
Next: 6.2 Командные последовательности - Up: 6. Оболочки Previous: 6. Оболочки

6.1 Команды

Простая команда - это последовательность слов, разделенных одним или несколькими пробелами. Первое (слева) слово определяет имя команды, которую следует выполнить. Команда может состоять из одного имени, например, w. За командой могут следовать параметры команды; как правило им предшествует знак - (минус). Параметры команды состоят из одной буквы. Например,
ls -l
или в случае нескольких параметров
ls -l -t.
Если параметров несколько, то они могут быть объединены; так что предыдущий пример может быть переписан в виде
ls -lt.
Довольно часто параметры состоят из одной буквы.

За параметрами могут следовать аргументы, например, имена файлов,
ls -lt A*.
Аргументы состоят из одного слова. Аргумент может относиться как к самой команде, так и к отдельному параметру. Например, команда
awk -f AwkProg FileName.
Здесь команда awk обрабатывает файл с именем FileName под управлением программы с именем AwkProg.

Два минуса подряд означают конец параметров. Например, команда
rm - -abc
удалит файл с именем -abc. Если вы попробуете выдать команду
rm -abc,
то имя файла будет воспринято как параметр и вы получите сообщение об ошибке.

Наконец, еще одно значение знака - (минус). Если знак используется на месте аргумента, то вместо имени файла используется стандартный ввод (или вывод).

Команда - это простая команда или команда, за которой следует простая команда.

Фильтр - это такая команда, которая читает данные из стандартного вводного файла, преобразует их каким-то образом и выводит результат в стандартный выводной файл.

Трубопровод - это последовательность двух или более команд разделенных знаком "|" (вертикальная черта). Основная черта трубопровода состоит в том, что стандартный вывод каждой команды, стоящей слева от вертикальной черты, соединяется со стандартным вводом команды, стоящей справа от вертикальной черты. Как видно из определений, трубопровод составлен из фильтров.

Список - это один или более трубопроводов разделенных знаками ;, &, && или || и, возможно, ограниченными знаками ; и &. Из этих четырех знаков ; и & имеют равный приоритет, который ниже, чем приоритет у знаков && и ||. Приоритет последних также одинаков. Точка с запятой (;) приводит к последовательному выполнению трубопровода, за которым она стоит; амперсанд (&) приводит к асинхронному выполнению трубопровода, за которым он стоит (иными словами: оболочка-интерпретатор не будет ожидать завершения выполнения трубопровода, а перейдет немедленно к интерпретации следующего трубопровода). Символ && (||) приведет к тому, что следующий список будет интерпретироваться только в том случае, если текущий трубопровод завершился с нулевым (ненулевым) кодом завершения. В качестве ограничителя команд вместо точки с запятой могут использоваться также один или более знаков перевода строки.


next up previous contents
Next: 6.2 Командные последовательности - Up: 6. Оболочки Previous: 6. Оболочки
Andrei Chevel
Andrei.Chevel@pnpi.spb.ru