Операционная система UNIX. Руководство пользователя

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


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

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>



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