【发布时间】:2017-10-10 15:36:18
【问题描述】:
假设我有两个变量;
var_one_string=foo
var_two_string=bar
我将如何完成这样的事情(伪代码示例);
示例 1
for i in one two; do
echo $var_${i}_string
done
# Desired output
foo
bar
示例 2
for i in one two; do
echo $var_$(echo ${i})_string
done
# Desired output
foo
bar
我知道这是不好的替换,我只是想知道是否有办法将字符串嵌套在另一个变量调用中?
编辑:我能够让它工作
var_one_string=foo
var_two_string=bar
for i in $(echo ${!var_*}); do
echo ${!i}
done
foo
bar
【问题讨论】:
-
放入所需的输出。不确定你到底想要什么。
-
添加了所需的输出。
-
除了与许多其他 StackOverflow 问题重复之外,这是BashFAQ #6。
-
@s3d83d, ...btw,至少无论是否经常,间接扩展最好用功能更强大的数据结构代替。 (一个关联数组,一个通过 nameref 访问的数字索引数组,&c)。
-
感谢 Charles Duffy,我能够让它与间接扩展一起工作。
标签: bash