2016-11-04 55 views
0

如何在exec命令中使用變量?

如果我做下面的命令,它的工作原理:

$ exec 3>&1 

但如果我執行下面,它給了我一個錯誤:

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

我想在一個變量來保存如此當我需要在腳本中使用描述符3時,它不會被硬編碼。

+0

你可能不得不'EVAL EXEC是$ var>&1' –

+0

FWIW'VAR = 3''$ EXEC VAR>&1'工作在'zsh'。 –

回答

2

而不是使文件描述符可配置,讓bash本身爲您分配一個未使用的文件描述符。

exec {var}>&1 

然後,您可以稍後在其他重定向中使用$var

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

哇!這太好了,謝謝:) –

相關問題