2016-11-04 47 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

哇!这太好了,谢谢:) –

相关问题