我有一个.sh脚本,它使用我之前导出的环境变量。我希望我的变量是这样的:VAR1="${libDir}/test"
所以在我的脚本中,${libDir}
将替换为某个值。我在下面声明了我的导出:export VAR1="${libDir}/test"
但是在我的脚本中根本没有考虑libDir。我可以这样做吗?
答案 0 :(得分:1)
不,你不能拥有一个包含以“延迟”方式替换的变量引用的变量:


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

&# xA;
 你可以使用 eval
解决这个问题,但你不应该这样做。
$ var1(){
 echo“$ {libDir} / test”
}
 $ libDir = foo
 $ echo“$(var1)”
 foo / test
 $ libDir = bar
 $ echo“$(var1)”
 bar / test