替换字符串中的变量值

时间:2013-12-31 18:51:09

标签: string bash variables eval

我有一个文件(test.txt),其中包含这样的行(逐字):

MyCode $Cores

在bash脚本中,我设置了$ Cores的值,所以我想使用此值从test.txt执行该行。我试过这个:

Cores=2
ProgramString=... read line from test.txt...
ProgramCommand=$(eval echo \$$ProgramString)
echo ${ProgramCommand}
${ProgramCommand}

输出是这样的:

$MyCode 2

它已成功用2替换$ Cores,但它在开头添加了一个美元符号,所以我当然得到了

$MyCode No such file or directory

任何人都可以解释这个额外的$来自哪里(以及如何摆脱它)?

1 个答案:

答案 0 :(得分:1)

您将$\$包括在一起。请改用ProgramCommand=$(eval echo $ProgramString)