b8c4c21f

Стандартный ввод


Аналогичным образом для передачи данных на вход программе может быть использован стандартный ввод (сокращенно - stdin). При работе с командной строкой стандартный ввод - это символы, вводимые пользователем с клавиатуры. Стандартный ввод можно перенаправить при помощи командной оболочки, подав на него данные из некоторого файла. Символ "<" служит для перенаправления содержимого файла на стандартный ввод программе. Например, если вызвать утилиту sort без параметра, она будет читать строки со стандартного ввода. Команда "sort < имя_файла" подаст на ввод sort данные из файла:

[methody@localhost methody]$ sort < textfile Пример 1. Это файл для примеров. [methody@localhost methody]$

Пример 7.4. Перенаправление стандартного ввода из файла (html, txt)

Результат действия этой команды аналогичен команде sort textfile - разница лишь в том, что когда используется "<", sort получает данные со стандартного ввода ничего не зная о файле "textfile", откуда они поступают. Механизм работы shell в данном случае тот же, что и при перенаправлении вывода: shell читает данные из файла "textfile", запускает утилиту sort и передает ей на стандартный ввод содержимое файла.

Необходимо помнить, что операция ">" деструктивна: она всегда создает файл нулевой длины. Поэтому для, допустим, сортировки данных в файле надо применять последовательно sort < файл > новый_файл и mv новый_файл файл. Команда вида команда < файл > тот_же_файл просто урежет его до нулевой длины!

Стандартный ввод (standard input, stdin) - поток данных, открываемый системой для каждого процесса в момент его запуска и предназначенный для ввода данных.



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