Иллюстрированный самоучитель по Linux

Переадресация ввода и вывода

Одна из наиболее полезных концепций в мире Unix – стандартный ввод/вывод. Невзаимодействующие программы могут получать данные от стандартного устройства ввода, как правило, клавиатуры. Результаты выводятся на стандартное устройство вывода (обычно, это экран).

Однако в большинстве оболочек предусмотрена возможность переадресации стандартного ввода или вывода, что позволяет создавать сложные командные конструкции на основе большого количества команд и файлов данных. В гл. 13 мы рассмотрели конвейеризацию команд, при помощи которой можно переадресовать стандартный вывод на стандартный ввод. Например, в команде:

$ ls – 1 | more

…результаты выполнения команды Is -| направляются не на стандартное устройство вывода, а на стандартный ввод команды more.

Другой способ переадресации стандартного ввода/вывода в оболочке Bash – при помощи символов переадресации "<" и ">". Рассмотрим ситуацию, когда надо записать в файл список содержимого каталога. Для этого можно воспользоваться следующей командой.

$ ls – 1 > filelist

По этой команде стандартный вывод команды Is -| будет переадресован в файл с именем filelist. В следующей команде происходит переадресация ввода.

$ mail user@juxta.com < filelist

Здесь файл filelist используется в качестве стандартного устройства ввода для команды mail, образуя текст сообщения электронной почты.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.