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