今天在批量生成命令的时候,需要使用一个类似嵌套变量的东西,(注意这个嵌套变量,一开始并不知道shell中有这个东东)

具体场景是这样的:

有一堆命名比较规则的变量,例如conf_1、conf_2、conf_3…
这些变量需要在一个循环中根据循环的次数输出,伪代码如下:

1
2
3
4
5
6
7
8
conf_1='conf1'
conf_2='conf2'
conf_3='conf3'
for i in {1..3}
do
# 想要的效果是当i=1时,echo $conf_1
echo ${conf_${i}}
done

上面的代码会报语法错误。

于是就尴尬了,这要怎么搞,硬编码?这不符合前人的思维呀,于是google之。

既然要google就要给人家一个关键词,这看效果是变量里嵌套了变量,那关键字就是嵌套变量吧。
果然顺利搜出结果。demo如下:

1
2
3
4
5
6

title3='查找固件中的⼝令⽂件'
i=3
title=title${i}
eval temp=$(echo \$$title)
echo $temp

顺利结果问题。。。

果真是只有你想不到的,没有前人实现不了的。

参考

https://blog.csdn.net/u010801696/article/details/78847873