如何在shell脚本中将一个变量值赋给另一个变量

如何在shell脚本中将一个变量值赋给另一个变量,shell,Shell,我在shell代码下面尝试将temp的值设置为“good 1”和“good 2”,但未能实现 hello_1="good 1" hello_2="good 2" for i in 1 2 do temp="hello_$i" echo $temp done 我想将hello_1和hello_2变量值提取到temp变量中。 我尝试了上面的脚本,但无法将hello_1和hello_2的值输入temp。请帮助我。如果您使用的是bash4或更高版本,请阅读。但要回答你的问题,你可以这样做 hello_

我在shell代码下面尝试将
temp
的值设置为“good 1”和“good 2”,但未能实现

hello_1="good 1"
hello_2="good 2"
for i in 1 2
do
temp="hello_$i"
echo $temp
done
我想将
hello_1
hello_2
变量值提取到
temp
变量中。
我尝试了上面的脚本,但无法将
hello_1
hello_2
的值输入
temp
。请帮助我。

如果您使用的是
bash4
或更高版本,请阅读。但要回答你的问题,你可以这样做

hello_1="good 1"
hello_2="good 2"
for i in 1 2
do
    eval temp="\$hello_$i"
    echo $temp
done
输出

good 1
good 2
在shell编程中,
eval
通常被认为是邪恶的。不要养成使用它的习惯

关键技术是
eval
提供线路的第二次评估。在第一次通过时,它看起来像

 eval temp="$hello_1"
请注意
$i
如何显示为
1
,并且前导的
\\
字符已从
\$hello\u 1
中删除,因此 执行
eval
时,该行的处理采用
$hello_1
变量的值,并将其分配给
temp
,即

 temp="good 1"

IHTH

可能会尝试像${hello\u${i}那样进行对话。试着让我们知道是否工作。也试着回显价值