我在下面的shell代码中尝试获取temp
“好1”和“好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
。请帮我。
如果您使用的是bash 4
更高版本,请阅读有关间接引用的信息。但要回答您的问题,您可以做
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
eval
通常evil
在Shell编程中考虑。不要养成使用它的习惯。
关键技术是eval
提供线的第二次评估。在第一遍,它看起来像
eval temp="$hello_1"
请注意,的$i
显示方式为1
,\\
并且从中删除了前导字符\$hello_1
,因此eval
执行时,行的处理将取$hello_1
变量的值并将其分配给temp
,即
temp="good 1"
高温超导
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句