セキュリティ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、zsh、およびkshの機能です(おそらく他の機能ですが、私にはわかりません)。これはPOSIXではないため、ポータブルコードで使用するべきではありませんが、非常に便利です。
bashマニュアルの関連セクションは次のとおりです。
3.5.6プロセス置換
プロセス置換は、名前付きパイプ(FIFO)または開いているファイルに名前を付ける/ dev/fdメソッドをサポートするシステムでサポートされています。
の形式を取ります
の<(list)
または
>(list)
プロセスリストは、入力または出力をFIFOまたは/ dev/fd内のファイルに接続して実行されます。このファイルの名前は、展開の結果として現在のコマンドに
引数として渡されます。
>(list)形式が使用されている場合、ファイルに書き込むとリストの入力が提供されます。 <(list)形式を使用する場合は、引数として渡されたファイルを
読み取って、listの出力を取得する必要があります。 <または>と左括弧の間にスペースが表示されないことに注意してください。
そうでない場合、構成は
リダイレクトとして解釈されます。使用可能な場合、プロセス置換は、
パラメーターと変数の拡張、コマンド置換、および算術
拡張と同時に実行されます。