Это самая старая оболочка, которая быть может менее дружественна по отношению к пользователю, но она точно имеется на любой машине, на которой установлен любой вариант UNIX (Linux в том числе). Во многих случаях, если не указана оболочка, в которой следует выполнять командную последовательность, то она выполняется в оболочке sh.
До того, как команда выполнится, е© ввод и/или вывод могут быть перенаправлены с использованием специальной нотации, которую интерпретирует оболочка. Перенаправление может быть также использовано, чтобы открыть или закрыть файлы для текущего окружения оболочки. Следующие перенаправляющие операторы могут предшествовать или появляться где угодно в простой команде или могут следовать за командой. Перенаправление обрабатывается оболочкой в том порядке, в котором оно появляется слева направо.
В следующих описателях, если номер файла отсутствует и первый символ оператора перенаправления является "<" (знак меньше), то перенаправление подразумевает стандартный ввод (номер файла = 0). Если первый символ оператора перенаправления есть ">" (знак больше), то перенаправление относится к стандартному выводу (номер файла = 1).
<
<file_in | использовать файл с именем file_in в качестве стандартного ввода. |
<
>file_out | использовать файл с именем file_out в качестве стандартного вывода. |
<
>>file_out | использовать файл с именем file_out в качестве стандартного вывода. Если файл существует, то вывод добавляется в конец файла. В противном случае файл созда©тся. |
<
<<word | после того как параметрическая и командная
подстановка
выполнена над словом word, оболочка-интерпретатор читает ввод до строки,
которая содержит слово "word" или до конца файла. Однако, если слову
"word" предшествует знак "-" (минус), то
Если любой символ слова "word" закавычен, то никакой дополнительной обработки над введ©нными строками не производится. Если нет закавыченных символов в слове "word", то:
|
<
<&digit | использовать файл связанный с номером digit, в качестве стандартного ввода. Подобным же образом для стандартного вывода используется нотация >&digit. |
<
<&- | стандартный ввод закрывается. Подобная нотация
используется
для стандартного вывода >&-.
Например: ... 2>&1 файл с номером 2 перенаправляется в файл с номером 1. |
Если за командой следует знак "&" (амперсанд), то стандартным вводом для такой команды по умолчанию является пустой файл /dev/null.