2023年02月02日(木) [長年日記]
■ [shell][unix] Bashでリダイレクト時のディスクリプタ番号自動生成
Bashのリダイレクトについては以前にメモした。
このときメモしていなかったが、件のメモで「[n]」と書いている部分は「{varname}」のように書くことができる。こう書くと、ファイルディスクリプタの番号が自動的に生成され、その番号が変数varnameに設定される。
$ echo hello {a}>/tmp/oreore hello $ echo $a 10
Bashのmanから引用しておく。
ファイル・ディスクリプター番号で始まるリダイレクトでは、 代わりに {varname} という形式の単語で始めることもできます。 この場合、>&- と <&- 以外のリダイレクト演算子では、 シェルは 10 より大きいファイル・ディスクリプターを割り当て、 varname に代入します。 {varname} で始まる >&- や <&- の場合には、varname の値は クローズするファイル・ディスクリプターを示します。