Этот ответ на Security StackExchange использует интересный синтаксис bash для генерации файла в строке:
openssl req -new -x509 -nodes -newkey ec:<(openssl ecparam -name secp384r1) -keyout cert.key -out cert.crt -days 3650
Этот бит особенно интересен:
<(openssl ecparam -name secp384r1)
Работает только:
echo <(openssl ecparam -name secp384r1)
Я вернусь /dev/fd/63
Так что это похоже на создание временного дескриптора файла с содержимым файла.
Как это называется?
bash
file-descriptors
mikemaccana
источник
источник
git diff --no-index file1 <(cat file2)
потерпит неудачу с:error: /dev/fd/63: unsupported file type
. Вы также можете увидетьerror: readlink("/dev/fd/63"): No such file or directory
, создает ли реализация символическую ссылку на канал (почему-то для меня она выглядит как неработающая ссылка).Ответы:
Это называется подстановка процесса и является функцией bash, zsh и ksh (и, возможно, других, я не знаю). Это не POSIX, и вы не должны использовать его в переносимом коде, но это очень полезно.
Вот соответствующий раздел руководства по bash:
источник