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

Множество программ принимают информацию с терминала или клавиатуры и выводят ее на экран терминала. В Linux ввод с клавиатуры связан с чтением из файла под названием stdin, а вывод на терминал – с выводом в файл под названием stdout. Можно перенаправить ввод и вывод так, чтобы вместо ввода с терминала или вывода на терминал информация считывалась из файла или направлялась в файл.

Для перенаправления ввода команды или программы так, чтобы для ввода использовался файл, а не терминал применяется оператор < (символ «меньше»). Предположим, что нужно отправить файл с именем info по электронной почте адресату Sasha. Вместо того чтобы вручную перепечатывать содержимое файла для команды mail, укажите этой команде использовать файл info в качестве входного (stdin):

#mail Sasha < info

Для перенаправления вывода программы в файл применяется оператор > (символ «больше»). Вместо выдачи на экран терминала, информация помещается в файл. При этом, если файл с таким именем уже был – его содержимое замещается, а если нет, то такой файл создаётся. Команда date отображает на экране текущее время и дату. Чтобы сохранить текущее время и дату в файле с именем now воспользуемся командой:

#date > now

Если нужно добавить или дописать информацию в конец существующего файла, ис­пользуется двухсимвольный оператор >>. Для добавления текущей даты в файл с именем report наберём в командной строке:

#date >> report

Рассмотрим в качестве примера ещё три команды:

#date >> sales_report

#sort < sales >> sales_report

(аналогично: #sort sales >> sales_report)

#mail Sasha Jack < sales_report

В первой строке примера вывод команды date дописывается в файл sales_report. Во второй строке примера команда sort считывает ввод из файла sales, а вывод добавляется к файлу sales_report. Последней строкой файл sales_report отправляется пользователям Sasha и Jack по электронной почте.

Операторы перенаправления ввода-вывода Linux перечислены в таблице 1.

Таблица 1. Операторы перенаправления ввода-вывода в Linux

Оператор Значение Пример
< Принять ввод из файла mail sasha < report
> Направить вывод в файл date > now
>> Добавить вывод в конец файла date >> report

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: