(c) Larry Ewing, Simon Budig, Garrett LeSage
с 1994 г.

Кафедра Информатики и Математического Обеспечения

ПетрГУ | ИМиИТ | О кафедре | Мобильные платформы | Лаборатория ИТС | Семинары НФИ/AMICT
Сотрудники | Выпускники | Учебный процесс | Табель-календарь | Курсовые и выпускные работы
Вычислительные ресурсы | Публикации | Архив новостей | Контактная информация

В процессе работы программа оперирует потоками ввода и вывода для получения и отправки данных. Каждый поток идентифицируется уникальным номером. Большинство программ автоматически открывают по крайней мере три потока & стандартный ввод (имеет номер 0), стандартный вывод (имеет номер 1) и стандартный вывод ошибок (имеет номер 2). По умолчанию стандартный ввод связан с клавиатурой, вывод и вывод ошибок — с экраном терминала.

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

Перенаправление стандартного вывода осуществляется с помощью записи > имя файла, например, who > users. При этом старое содержимое файла users (если он существовал ранее) будет уничтожено. Для дозаписи в файл можно воспользоваться нотацией >> имя файла. Если вывод необходимо только подавить (то есть предотвратить появление на экране, но не выводить в файл), используется идиома >/dev/null.

Для перенаправления ввода из файла используется форма < имя файла. Кроме того, есть возможность определить содержимое перенаправляемых команде данных прямо в конструкции перенаправления. Если команде необходимо передать одну строку текста, используется форма <<< строка, например, bc <<< 10 + 10. Если передаваемые данные содержат символ перевода строки, то можно использовать форму

<<слово-разделитель
текст
слово-разделитель