2.8.1 Стандартный вход и стандартный выход

Многие команды UNIX получают информацию с так называемого стандартного входа и посылают информацию на (опять же) так называемый стандартный выход. (Для них часто используются сокращения ``stdin'' и ``stdout'' соответственно). Ваш shell организует дело так, что стандартным входом служит клавиатура, а стандартным выходом - экран.

Вот пример использования команды cat. Нормально cat читает данные из файлов, чьи имена даны в командной строке и посылает эти данные прямехонько на stdout. Поэтому при выполнении команды


    /home/larry/papers# cat history-final masters-thesis

на экран пойдет файл history-final, а за ним следом masters-thesis.

Но если команде cat не даны имена файлов в качестве параметров, она читает данные с stdin и опять же посылает на stdout. Вот пример.


    /home/larry/papers# cat
    Hello there.
    Hello there.
    Bye.
    Bye.
    [ctrl-D]
    /home/larry/papers#

Как видите, каждая строка, которую напечатал пользователь, немедленно выдается командой cat на экран. При вводе со стандартного входа команда знает, что ввод закончен тогда, когда она получит в каком-то виде сигнал EOT (End-Of-Text). Обычно он обеспечивается нажатием ctrl-D.

Вот другой пример. Команда сортировки sort читает построчно текст (здесь опять с stdin, поскольку имена файлов в параметрах не указаны, и посылает отсортированный результат на stdout. Попробуйте так.


    /home/larry/papers# sort
    bananas
    carrots
    apples
    [ctrl-D]
    apples
    bananas
    carrots
    /home/larry/papers#

Теперь мы можем упорядочить наш список продуктов, подлежащих закупке, в лексикографическом порядке... ну разве UNIX не полезная вещь?




Сайт создан в системе uCoz