5.7. Файловый ввод–вывод
5.7. Файловый ввод–вывод
При вызове команд можно указывать, откуда следует принимать входные данные и куда необходимо направлять выходные данные, а также сообщения об ошибках. По умолчанию, если не указано иное, подразумевается работа с терминалом: данные вводятся с клавиатуры и выводятся на экран. Но интерпретатор shell располагает механизмом переадресации, позволяющим ассоциировать стандартные потоки с различными файлами. В табл. 5.1 приведены наиболее распространенные операторы переадресации.
Во время перенаправления стандартного потока ошибок следует указывать дескриптор файла (2). Для потоков ввода и вывода делать это не обязательно.
Таблица 5.1. Основные операторы переадресации
команда > файл
Направляет стандартный поток вывода в новый файл
команда 1> файл
Направляет стандартный поток вывода в указанный файл
команда >> файл
Направляет стандартный поток вывода в указанный файл (режим присоединения)
команда > файл 2>&1
Направляет стандартные потоки вывода и ошибок в указанный файл
команда 2> файл
Направляет стандартный поток ошибок в указанный файл
команда 2» файл
Направляет стандартный поток ошибок в указанный файл (режим присоединения)
команда >> файл 2>&1
Направляет стандартные потоки вывода и ошибок в указанный файл (режим присоединения)
команда < файл1 > файл2
Получает входные данные из первого файла и направляет выходные данные во второй файл
команда < файл
В качестве стандартного входного потока получает данные из указанного файла
команда << разделитель
Получает данные из стандартного потока ввода до тех пор, пока не встретится разделитель
команда <&m
В качестве стандартного входного потока получает данные из файла с дескриптором m
команда > &m
Направляет стандартный поток вывода в файл с дескриптором m