通过循环回显变量集 [英] echo the set of variables while going through a loop
本文介绍了通过循环回显变量集的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
有人可以帮我吗.我一直在尝试替代方法,但仍然得到相同的输出.
Can someone help me. I've been trying alternatives but I still get the same output.
这是我的剧本
#!/bin/sh
field1="a"
field2="s"
field3="d"
field4="f"
field5="g"
for i in {1..5}
do
var1="field"$i
echo $var1
var2="$"$var1
echo $var2
echo $field1
done
这是我的输出
field1
$field1
a
field2
$field2
a
field3
$field3
a
field4
$field4
a
field5
$field5
a
我想做的是得到类似的输出
what I'm trying to do is get an output like
a
s
d
f
g
推荐答案
You're looking for ${!var1}
— a Bash-specific shell parameter expansion.
field1="a"
field2="s"
field3="d"
field4="f"
field5="g"
for i in {1..5}
do
var1="field"$i
echo $var1=${!var1}
done
输出:
field1=a
field2=s
field3=d
field4=f
field5=g
在bash
和sh
都运行脚本的情况下,我明白了这一点.显然,如果您没有在echo
中包含$var1=
,则只会得到您要求的单个字母.
I got that with both bash
and sh
running the script. Clearly, if you don't include $var1=
in the echo
, you get just the single letters you ask for.
您还应该考虑是否将字段存储在Bash 数组中.
You should also consider whether your fields should be stored in a Bash array.
这篇关于通过循环回显变量集的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文