2016-11-04 5 views
0

execコマンドで変数を使用するにはどうすればよいですか?

私は、以下のコマンドを実行すると、それが動作:

$ exec 3>&1 
しかし、私は次のことを実行した場合、それは私にエラーを与える:

$ var=3; exec $var>&1 
bash: exec: 3: not found 

私は変数に保存したいですスクリプトで後者のディスクリプタ3を使用する必要があるときは、ハードコーディングされません。

+0

おそらく 'evalの幹部ます$ VARに持って>&1 ' –

+0

FWIW' VAR = 3' '幹部の$ VAR>&1' zsh''で動作します。 –

答えて

2

ファイルディスクリプタを構成可能にする代わりに、bash自体が未使用のファイルディスクリプタを割り当てます。

exec {var}>&1 

その後、$varを他のリダイレクトに使用できます。

printf '%s' "Some message" >&$var 
+0

うわー!これはずっと良い、感謝です:) –

関連する問題