8-916-939-49-78
jiabicht@rambler.ru
vk.com/allweiss
Bash – разновидность командой оболочки UNIX, наиболее используемая в операционных системах типа Linux.
Данный раздел посвящен общим теоретическим моментам: потокам и перенаправлениям потоков в Bash.
Следует отметить, что на этой странице не рассматриваются стандартные команды, необходимые для работы с Bash, их можно изучить с помощью любого источника – литературы по UNIX.
I. Потоки
В системах типа UNIX и других существуют стандартные потоки ввода-вывода. Это потоки процесса, имеющие способность выполнять «стандартные» функции. Иначе говоря, стандартные потоки – это воображаемые файлы, с помощью которых происходит запись в файлы и чтение последних, т.е. осуществление взаимодействия с пользователем.
Стандартный поток ввода – stdin – служит для выполнения чтения текста, вводимого пользователя (в типичном случае – чтение с клавиатуры). Т.е. поток включает все вводимые человеком команды.
Данные других потоков можно перенаправлять в stdin, используя символ “<”.
Файл, из которого осуществляется чтение, называется стандратным потоком ввода.
Стандартный поток вывода – stdout – служит для вывода данных на устройство отображения (в типичном случае – на монитор). Т.е. поток включает результаты выполнения команд, заданных пользователем. Не содержит информации об ошибках (т.е. не выполняет ее вывод).
Данные других потоков можно перенаправлять в stdout, используя символы “>”, “>>”.
Файл, в который осуществляется запись, называется стандартным потоков вывода.
Пропись | Действие |
---|---|
< файл | Использовать "файл" как источник данных для стандартного потока ввода. |
> файл | Направить стандартный поток вывода в "файл". Если файл не существует, он будет создан; если существует — перезаписан сверху. |
>> файл | Направить стандартный поток вывода в "файл". Если файл не существует, он будет создан; если существует — данные будут дописаны к нему в конец. |
2> файл | Направить стандартный поток ошибок в "файл". Если файл не существует, он будет создан; если существует — перезаписан сверху. |
2>> файл | Направить стандартный поток ошибок в "файл". Если файл не существует, он будет создан; если существует — данные будут дописаны к нему в конец. |
>& файл | Направить стандартный поток вывода и стандартный поток ошибок в "файл". |
| программа1 | Направить стандартный поток вывода в программу "программа1". |