首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linux Bash如何获取输出并将其放回使用for循环的脚本中

问Linux Bash如何获取输出并将其放回使用for循环的脚本中
EN

Stack Overflow用户
提问于 2017-12-07 06:41:12
回答 1查看 67关注 0票数 1

echo $var命令可以很容易地调用bash中变量的值,如下所示

代码语言:javascript
复制
user@linux:~$ a=1; b=2; c=a+b
user@linux:~$ echo $a $b $c
1 2 a+b
user@linux:~$ 

我想要实现的是用x中的实际值替换a,b,c

代码语言:javascript
复制
user@linux:~$ a=1; b=2; c=a+b
user@linux:~$ for i in a b c; do echo "$i = x"; done
a = x
b = x
c = x
user@linux:~$ 

通过使用类似的for循环,我希望能得到这样的输出

代码语言:javascript
复制
a = 1
b = 2
c = a+b
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-07 06:43:50

间接使用

代码语言:javascript
复制
$ for i in a b c; do echo "$i = ${!i}"; done
a = 1
b = 2
c = a+b

文档

间接在man bash中解释

如果参数的第一个字符是感叹号(!),而参数不是nameref,则会引入一个间接变量级别。Bash使用参数其余部分形成的变量的值作为变量的名称;然后展开该变量,该值用于替换的其余部分,而不是参数本身的值。这就是所谓的间接膨胀。如果参数是nameref,则扩展到由参数引用的变量的名称,而不是执行完全的间接展开。这方面的例外是下面描述的${!前缀*}和${!name@}的扩展。感叹号必须立即跟随左大括号,以引入间接。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47689078

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档