|
2.8.2 Перенаправление
входа и выхода
Теперь, предположим,
что мы хотим послать результат сортировки в файл, чтобы где-то сохранить
список планируемых покупок. Shell дает нам возможность перенаправлять
стандартный выход в файл, используя символ ``>''. Вот как это работает.
/home/larry/papers# sort > shopping-list
bananas
carrots
apples
[ctrl-D]
/home/larry/papers#
Как вы можете видеть,
результат работы команды sort не отображается на экране, вместо
этого он сохраняется в файле shopping-list (список покупок). Давайте
посмотрим на этот файл.
/home/larry/papers# cat shopping-list
apples
bananas
carrots
/home/larry/papers#
Теперь мы можем
не только сортировать (упорядочивать) список планируемых покупок, но и
сохранять его! Но предположим, что мы хранили наш неотсортированный исходный
закупочный список в файле под именем items. Один из способов сортировки
и сохранения его, это отсортировать файл с данным именем, вместо получения
файла со стандартного входа, и перенаправить стандартный выход в файл.
Например так
/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 были напечатаны на клавиатуре.
shell обслуживает перенаправление. sort не было дано имя файла
(items) и команда читала со стандартного входа, как будто шел
ввод с клавиатуры.
Это иллюстрирует
концепцию фильтра. Фильтр, это программа, которая получает данные
со стандартного входа, обрабатывает их каким-то образом и посылает результат
обработки на стандартный выход. С помощью перенаправления стандартные вход
и выход могут быть переведены на файлы. sort - простейший фильтр:
она сортирует входные данные и посылает результат на стандартный выход.
cat - даже еще проще: она ничего не делает со входными данными,
а только выдает все, что не поступит, на выход.
Copyright
© 2000 Soft Group
|
|