Что делает <(), делают в Bash?

Другая опция состоит в том, чтобы иметь два отделения и использовать .hide () & .show ().

11
задан Community 20 March 2017 в 10:18
поделиться

2 ответа

Это называется подстановкой процесса.

<( list ) - это единственная синтаксическая конструкция, символ '<' не является отдельным символом в этом кейс. Он выполняет список и предоставляет свой вывод в виде файла (не стандартное перенаправление) для команды.

Это эквивалентно выполнению (за исключением того, что он использует каналы вместо временных файлов, когда это возможно):

sort abc > /tmp/1
sort bcd > /tmp/2
join /tmp/1 /tmp/2

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

( list ) - это другая конструкция, предназначенная для другой цели. Он просто создает подоболочку, которая выполняет список , предоставляя свои стандартные дескрипторы родительской оболочке.

Здесь - соответствующая часть в руководстве по bash.

21
ответ дан 3 December 2019 в 03:53
поделиться

<( команда ) - это подстановка процесса (см. Соответствующий раздел в man bash ). Обычно команда запускается, и ее вывод передается в именованный канал (FIFO), а затем вся конструкция заменяется именем канала, что приводит к соединению / dev / fd / x /dev/fd/[12117 providedy[12118 impression.

)
5
ответ дан 3 December 2019 в 03:53
поделиться