我可以用其他变量导出变量吗?

时间:2015-07-27 12:39:17

标签: shell unix

我有一个.sh脚本,它使用我之前导出的环境变量。我希望我的变量是这样的:VAR1="${libDir}/test"所以在我的脚本中,${libDir}将替换为某个值。我在下面声明了我的导出:export VAR1="${libDir}/test"但是在我的脚本中根本没有考虑libDir。我可以这样做吗?

1 个答案:

答案 0 :(得分:1)

不,你不能拥有一个包含以“延迟”方式替换的变量引用的变量:




  $ libDir = foo&# xA; $ VAR1 =“$ {libDir} / test”
 $ libDir = bar
 $ echo“$ VAR1”
 foo / test
  
&# xA;


可以使用 eval 解决这个问题,但你不应该这样做。

&#xA;&#xA; < p>然而,一个函数将完全按照您想要的方式执行,只需要额外的语法价格:

&#xA;&#xA;
  $ var1(){&#xA; echo“$ {libDir} / test”&#xA;}&#xA; $ libDir = foo&#xA; $ echo“$(var1)”&#xA; foo / test&#xA; $ libDir = bar&#xA; $ echo“$(var1)”&#xA; bar / test&#xA;  
&#xA;