繁体   English   中英

在Unix中使用回显打印两个不带空格的变量

[英]Print two variables without space with echo in unix

VAR1=ABC;
VAR2=XYZ;
VAR3=PQR;

我想在for循环中打印VAR1,VAR2和VAR3的值。 请帮忙!

for loop我试图做echo $VAR$i

预期的O / P:

ABC
XYZ
PQR

实际产量:

1
2
3

使用数组:

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

你可以这样做:

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
echo "${VAR1}${VAR2}${VAR3}"

就那么简单。 我认为创建无用的周期仅仅是将多个值连接到字符串中是没有意义的

代替

echo $VAR$i
在for循环中

echo $varx

并将varx初始化为空字符串,并在结束时执行

  echo $ varx 

正如问题所暗示的,这是用于没有空间的打印。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM