我正在尝试根据另一个变量的值创建一个变量,并尝试将值存储到 Shell 脚本中创建的变量中。例如: 假设有一个现有变量
i=1
我正在尝试在
var_$i
中存储价值
我已经尝试过:
i=1 "var_$i"='true' echo "$var_1"
输出:
bash: var_1=true: command not found
并且
i=1 var_indirect="var_$i" ${!var_indirect}='true' echo "$var_1"
输出:
bash: =true: command not found
我期待:
echo $var_1
将给出输出 true
我们将使用
eval
。为了将风险降到最低,我们准备将值存储到名为 val
的变量中的计算变量中
成语是:
eval var_$i=\$val
eval
的参数经过替换,产生语法var_1=$val
。美元符号被转义,因此转义被删除并保留美元符号。
此
var_1=$val
语法由 eval
求值,从而产生所需的赋值。
请注意,
A=$B
作业不需要引用。