VAR1=ABC;
VAR2=XYZ;
VAR3=PQR;
我想在for循环中打印VAR1,VAR2和VAR3的值。 请帮忙!
在for loop
我正在尝试echo $VAR$i
预期的O / P:
ABC
XYZ
PQR
实际输出:
1
2
3
答案 0 :(得分:6)
使用数组:
VAR[1]=ABC
VAR[2]=XYZ
VAR[3]=PQR
for i in 1 2 3 ; do
echo ${VAR[i]}
done
或者,使用变量间接:
VAR1=ABC
VAR2=XYZ
VAR3=PQR
for i in 1 2 3 ; do
name=VAR$i
echo ${!name}
done
答案 1 :(得分:2)
你可以这样做:
for i in 1 2 3
do
eval "echo \$VAR${i}"
done
关键点是eval
命令。
$ VAR1=ABC; VAR2=XYZ; VAR3=PQR;
$ for i in 1 2 3; do eval "echo \$VAR${i}"; done
ABC
XYZ
PQR
答案 2 :(得分:0)
echo "${VAR1}${VAR2}${VAR3}"
这很简单。我不认为创建无用的循环只是为了将几个值连接成一个字符串
答案 3 :(得分:-1)
echo $VAR$i在for循环中执行
varx=$varx$var$i
并将varx初始化为空字符串,并在最后执行
echo $varx
这是针对没有空间的打印问题所示。