Перенаправление ввода и вывода в программе «Терминал» на Mac
С помощью командной строки можно перенаправлять потоки входных и выходных данных с команды на файл или другую команду.
Перенаправьте вывод из команды, если хотите сохранить результаты выполнения команды в файле для дальнейшего использования. Перенаправьте ввод команды на получение готовых данных из файла, если не хотите вводить входные данные вручную.
Для перенаправления ввода и вывода используются следующие символы:
Перенаправление | Описание | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
> | Используйте правую угловую скобку, чтобы перенаправить выходные данные команды в файл. | ||||||||||
< | Используйте левую угловую скобку, чтобы использовать содержимое файла в качестве входных данных команды. | ||||||||||
>> | Используйте две правые угловые скобки, чтобы добавить вывод из команды в файл. |
Помимо перенаправления в файл и из файла, Вы можете перенаправить выходные данные одной команды на вход другой команды с помощью символа вертикальной черты или потока. Таким образом команды можно комбинировать для получения более сложных версий тех же команд.
Например, следующая команда передает отформатированное содержимое man-страницы bash
инструменту grep
, который ищет в этих данных строки, содержащие слово commands. Результатом является список строк с заданным текстом, а не целая man-страница.
$ man bash | grep commands
Стандартные потоки ввода/вывода:
stdin. Стандартный поток ввода — это поток, из которого команда получает входные данные. По умолчанию входные данные вводятся через интерфейс командной строки. Вы можете перенаправить вывод из файлов или других команд в поток stdin.
stdout. Стандартный поток вывода — это поток, куда команда отправляет выходные данные. По умолчанию команда выводит данные в командную строку. Вы можете перенаправить вывод с командной строки на другие команды и инструменты.
stderr. Стандартный поток ошибок — это поток, куда отправляются сообщения об ошибках. По умолчанию ошибки отображаются в командной строке вместе со стандартным потоком вывода.
Подробнее о перенаправлении см. на man-странице команды bash.