メモの日々


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 の値は クローズするファイル・ディスクリプターを示します。