2015-07-29 2 views
3

Я знаком с созданием временных файлов для ввода команды в bash, например.Каково имя `<(...)` 'operator' в bash?

cat file_1 <(echo hello) file_2 

Я хочу, чтобы прочитать больше о предмете, но я не знаю, имя оператора <(). Я подозреваю, что это своего рода перенаправление IO.

Есть ли название для этой записи/оператора?

ответ

11

Это называется process substitution:

Подстановка процессов является формой перенаправления, где вход или выход процесса (некоторой последовательности команд) появляются в качестве временного файла .

Кроме того, из Bash Reference Manual → 3.5.6 Process Substitution:

Подстановка процессов позволяет вход или выход процесса, чтобы упоминаться используя имя файла. Он принимает форму

<(list) 

или

>(list) 

Список процессов выполняется асинхронно, а его вход или выход отображается в виде файла. Это имя файла передается в качестве аргумента текущей команде в результате расширения. Если используется форма> (список), запись в файл будет содержать вход для списка. Если используется форма < (список), файл, переданный как аргумент, должен быть прочитан для получения вывода списка. Обратите внимание, что между < или> и левой скобкой нет пробела, иначе конструкция будет интерпретироваться как перенаправление. Подстановка процессов поддерживается системами, которые поддерживают именованные каналы (FIFO) или метод/dev/fd для именования открытых файлов.

Когда доступно, подстановка процесса выполняется одновременно с расширением параметра и переменной, подстановкой команды и арифметическим расширением.

1

Также известен как «анонимный FIFO».

+1

Это не дает ответа на вопрос. Чтобы критиковать или просить разъяснения у автора, оставьте комментарий ниже их сообщения. - [Из обзора] (/ review/low-quality-posts/11898694) –

+1

@TobySpeight Это действительно дает ответ на вопрос. –

Смежные вопросы