Операционная система UNIX

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



8.3.4. Перенаправление вывода команде

Символ | называется каналом. Канал является мощным средством, которое позволяет вам брать вывод одной команды и использовать его в качестве ввода для другой команды без создания временных файлов. Таким образом построенная последовательность команд называется конвейером. Общий формат конвейера: command1 | command2 | command3 ... <CR> Вывод command1 используется как ввод для command2. Вывод command2 используется как ввод для command3.

Чтобы понять насколько эффективен конвейер, рассмотрим 2 способа, которые дают одинаковый результат:

  • использование метода перенаправления ввода/вывода. Запустим одну команду и перенаправим ее вывод во временный файл. Затем запустим вторую команду, которая берет содержимое временного файла как ввод. И в конце удалим временный файл;
  • использование метода конвейера. Например, предположим вы хотите послать сообщение happy birthday с помощью команды banner владельцу david. Выполним сначала по первому методу:
    1. Введите команду banner и перенаправьте ее вывод во временный файл: banner happy birhday > message.tmp
    2. Введите команду mail и в качестве ввода воспользуйтесь файлом message.tmp: mail david < message.tmp
    3. Удалите временный файл: rm message.tmp Вторым методом это можно сделать быстрее: banner happy birthday | mail david<CR>



    Содержание раздела