Переадресация ввода и вывода
Одна из наиболее полезных концепций в мире Unix - стандартный ввод/вывод. Невзаимодействующие программы могут получать данные от стандартного устройства ввода, как правило, клавиатуры. Результаты выводятся на стандартное устройство вывода (обычно, это экран). ,
Однако в большинстве оболочек предусмотрена возможность переадресации стандартного ввода или вщвода, что позволяет создавать сложные командные конструкции на основе большого количества команд и файлов данных. В гл. 13 мы рассмотрели конвейеризацию команд, при помощи которой можно переадресовать стандартный вывод на стандартный ввод. Например, в команде
$ ls -1 | more
результаты выполнения команды Is -1 направляются не на стандартное устройство вывода, а на стандартный ввод команды more.
Другой способ переадресации стандартного ввода/вывода в оболочке Bash - при помощи символов переадресации "<" и ">". Рассмотрим ситуацию, когда надо записать в файл список содержимого каталога. Для этого можно воспользоваться следующей командой.
$ ls -1 > filelist
По этой команде стандартный вывод команды Is -1 будет переадресован в файл с именем filelist. В следующей команде происходит переадресация ввода.
$ mail user@juxta.com < filelist
Здесь файл filelist используется в качестве стандартного устройства ввода для команды mail, образуя текст сообщения электронной почты.