nextuppreviouscontents
Next:Использование состыкованных командUp:Стыкование команд в системе Previous:Стандартный ввод и стандартный

Перенаправление ввода и вывода

  Допустим, вы хотите направить вывод команды sort в некоторый файл, чтобы сохранить упорядоченный по алфавиту список на диске. Командная оболочка позволяет перенаправить (redirect) стандартный вывод команды в файл, используя символ ">". Приведем пример:
/home/larry/papers# sort > shopping-list
bananas
carrots
apples
{Ctrl-D} 
/home/larry/papers#
Можно увидеть, что результат работы команды sort не выводится на экран, однако он сохраняется в файле с именем shopping-listgif. Выведем на экран содержимое этого файла:
/home/larry/papers# cat shopping-list
apples 
bananas 
carrots 
/home/larry/papers#
Пусть теперь исходный неупорядоченный список находится в файле items. Этот список можно упорядочить с помощью команды sort, если указать ей, что она должна читать из данного файла, а не из своего стандартного ввода, и кроме того, перенаправить стандартный вывод в файл, как это делалось выше. Пример:
/home/larry/papers# sort items  shopping-list
/home/larry/papers# cat shopping-list
apples 
bananas
carrots
/home/larry/papers#
  Однако, можно поступить иначе. Можно перенаправить не только стандартный вывод, но и стандартный ввод, используя символ "<":
/home/larry/papers# sort < items
apples 
bananas 
carrots
/home/larry/papers#
Технически команда sort < items эквивалентна команде sort items, однако первая из них демонстрирует следующее: при выдаче команды sort < items система ведет себя так, как если бы данные, которые содержатся в файле items, были введены со стандартного ввода. Перенаправление осуществляется командной оболочкой. Команде sort не сообщалось имя файла items: эта команда читала данные из своего стандартного ввода, как если бы мы вводили их с клавиатуры.

  Введем понятие фильтра (filter). Фильтром является программа, которая читает данные из стандартного ввода, некоторым образом их обрабатывает и результат направляет на стандартный вывод. Когда применяется перенаправление, в качестве стандартного ввода и вывода могут выступать файлы. Как указывалось выше, по умолчанию, stdin и stdout относятся к клавиатуре и к экрану соответственно. Программа sort является простым фильтром -- она сортирует входные данные и посылает результат на стандартный вывод. Совсем простым фильтром является программа cat -- она ничего не делает с входными данными, а просто пересылает их на выход.


nextuppreviouscontents
Next:Использование состыкованных командUp:Стыкование команд в системе Previous:Стандартный ввод и стандартный
root

Sun Aug 29 12:01:30 MSD 1999