シェルスクリプトのリダイレクトでは、execを使うと一般的なプログラミング言語のopenみたいなことができます。 exec 5> out.txt こうしておいて、ファイルディスクリプターの5番にリダイレクトしてやれば、out.txtに出力されます。 ls >&5 クローズは“番号>&-”。 exec 5>&- ただ、これだと空いてるファイルディスクリプター番号を自分で管理しなくてはなりません。そこで、最近のbash(4.1以降)やzshでは、数字のかわりに変数を指定すると、自動で割り振ってくれます。 exec {fd}> out.txt こうするとファイルディスクリプター番号が自動で割り振られて、その番号が変数fdに入ります。あとは番号のかわりに変数を指定します。 ls >&$fd exec {fd}>&- …ただ、実際には多くの場合、execを使わなくてもコマンド群を{}や()で囲ってリ