GNU/Linux >> Linux の 問題 >  >> Linux

バッシュ‘?

セキュリティ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の出力を取得する必要があります。 <または>と左括弧の間にスペースが表示されないことに注意してください。
そうでない場合、構成は
リダイレクトとして解釈されます。

使用可能な場合、プロセス置換は、
パラメーターと変数の拡張、コマンド置換、および算術
拡張と同時に実行されます。


Linux
  1. Bashシェルのカスタマイズ

  2. Bashスクリプトがエイリアスを認識しないのはなぜですか?

  3. パス変数がBashで設定されている場所の完全なビュー?

  1. N番目に若いファイルをリストする方法(Lsを解析せずに!)?

  2. Bash スクリプトのスクリプト ファイル名を知るにはどうすればよいですか?

  3. Bash でファイルの内容をループする

  1. 各ファイルとディレクトリのサイズを一覧表示し、Bash で降順で並べ替える方法は?

  2. bashでファイルの絶対ディレクトリを取得するにはどうすればよいですか?

  3. <() の bash (および =() の zsh) とは正確には何ですか?