Средства перенаправления
В процессе работы программа оперирует потоками ввода и вывода для получения и отправки данных. Каждый поток идентифицируется уникальным номером. Большинство программ автоматически открывают по крайней мере три потока & стандартный ввод (имеет номер 0), стандартный вывод (имеет номер 1) и стандартный вывод ошибок (имеет номер 2). По умолчанию стандартный ввод связан с клавиатурой, вывод и вывод ошибок — с экраном терминала.
Ввод и вывод команды могут быть перенаправлены с использованием специальных конструкций shell. Операторы перенаправления могут размещаться в любом месте простой команды, и независимо от расположения будут обработаны до исполнения команды. Если в команде несколько перенаправлений, они обрабатываются слева направо.
Перенаправление стандартного вывода осуществляется с помощью записи > имя файла, например, who > users. При этом старое содержимое файла users (если он существовал ранее) будет уничтожено. Для дозаписи в файл можно воспользоваться нотацией >> имя файла. Если вывод необходимо только подавить (то есть предотвратить появление на экране, но не выводить в файл), используется идиома >/dev/null.
Для перенаправления ввода из файла используется форма < имя файла. Кроме того, есть возможность определить содержимое перенаправляемых команде данных прямо в конструкции перенаправления. Если команде необходимо передать одну строку текста, используется форма <<< строка, например, bc <<< 10 + 10. Если передаваемые данные содержат символ перевода строки, то можно использовать форму
<<слово-разделитель
текст
слово-разделитель