通过循环回显变量集 [英] echo the set of variables while going through a loop

查看:87
本文介绍了通过循环回显变量集的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有人可以帮我吗.我一直在尝试替代方法,但仍然得到相同的输出.

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

bashsh都运行脚本的情况下,我明白了这一点.显然,如果您没有在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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆