Конструкция <( COMMAND )
Bash называется заменой процесса .
Он оценивает COMMAND
внутреннюю часть и перенаправляет свой вывод в FIFO, именованный канал, который получает назначенный виртуальный дескриптор файла /dev/fd
. Он действует как временный файл, который содержит выходные данные оцененной команды.
Конструкция <
Bash называется перенаправлением ввода .
Он берет файловый дескриптор с правой стороны и перенаправляет его содержимое на стандартный ввод команды слева.
Это -
не конструкция Bash, а аргумент,sed
который определяет его входной файл. Специальное значение -
означает чтение из STDIN (что также является sed
значением по умолчанию, поэтому его можно опустить).
sed 's/^.*= //' - < <(openssl dgst -sha256 filename)
Эта строка сначала запускается openssl dgst -sha256 filename
и кэширует свой вывод в FIFO. Дескриптор файла, представляющий этот именованный канал, обрабатывается как входной файл, который перенаправляется на STDIN sed 's/^.*= //' -
. Эта sed
команда читает из STDIN и удаляет каждый символ перед символом «=», за которым следует пробел.
openssl ... | sed '...'