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

Подраздел


6.3 sh

Это самая старая оболочка, которая быть может менее дружественна по отношению к пользователю, но она точно имеется на любой машине, на которой установлен любой вариант UNIX (Linux в том числе). Во многих случаях, если не указана оболочка, в которой следует выполнять командную последовательность, то она выполняется в оболочке sh.

6.3.1 Перенаправление вывода

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

В следующих описателях, если номер файла отсутствует и первый символ оператора перенаправления является "<" (знак меньше), то перенаправление подразумевает стандартный ввод (номер файла = 0). Если первый символ оператора перенаправления есть ">" (знак больше), то перенаправление относится к стандартному выводу (номер файла = 1).

<
<file_in использовать файл с именем file_in в качестве стандартного ввода.

<
>file_out использовать файл с именем file_out в качестве стандартного вывода.

<
>>file_out использовать файл с именем file_out в качестве стандартного вывода. Если файл существует, то вывод добавляется в конец файла. В противном случае файл созда©тся.

<
<<word после того как параметрическая и командная подстановка выполнена над словом word, оболочка-интерпретатор читает ввод до строки, которая содержит слово "word" или до конца файла. Однако, если слову "word" предшествует знак "-" (минус), то
1.
лидирующие символы табуляции удаляются из слова "word" после подстановки, но до начала чтения ввода,
2.
лидирующие знаки табулятора удаляются из читаемых строк до сравнения с словом "word",
3.
наконец, оболочка-интерпретатор читает до первой строки, которая содержит слово "word" или до конца файла.

Если любой символ слова "word" закавычен, то никакой дополнительной обработки над введ©нными строками не производится. Если нет закавыченных символов в слове "word", то:

1.
производится параметрическая и командная подстановка,
2.
знаки new-line игнорируются и
3.
знак $ \backslash $ (обратный слеш) должен использоваться, чтобы квотировать специальные символы , (запятая) $ (доллар) и ' (одиночный апостроф).

<
<&digit использовать файл связанный с номером digit, в качестве стандартного ввода. Подобным же образом для стандартного вывода используется нотация >&digit.

<
<&- стандартный ввод закрывается. Подобная нотация используется для стандартного вывода >&-.

Например:

... 2>&1

файл с номером 2 перенаправляется в файл с номером 1.

Если за командой следует знак "&" (амперсанд), то стандартным вводом для такой команды по умолчанию является пустой файл /dev/null.


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