linux shell脚本中,数组名称是一个变量,怎么打印出它里面的元素?

linux shell脚本中,数组名称是一个变量,怎么打印出它里面的元素。
array=(aa bb cc)
echo $array[2]
可以打印出第三个元素我知道,但是当数组名是一个变量的时候,怎么写才能打印出来呢。
例如 array2是一个数组,里面有一个元素叫array
for x in ${array2[*]}
do
echo $x[0]
当$x是array的时候,我想打印出aa,我怎么弄也不行,也想到了eval,但是没弄对,求助大神

题主你好,

代码及测试截图如下:

下面这个例子可能对题主有帮助:

说明: array和array1是两个数组, 其中的内容分别为aa bb cc和dd ee ff, 然后再定义一个数组array2,这个数组中的元素为array和array1,最后使用for循环,通过array2数组将array和array1中的元素输出.

希望可以帮到题主, 欢迎追问.

追问

真是太感谢了,我也测试成功,非常感谢帮上了忙,这个例子就是我想要实现的,赞赞赞!
我觉得我要疯,这么多单引号双引号,还有上面你用上的!在例子里都不用了,如果能稍微做一下作用说明就更好了呢

好的谢谢啦,你去看看我新提问的问题,也回答一下吧,现在都没人回答,25分给你

好的谢谢啦,你去看看我新提问的问题,也回答一下吧,现在都没人回答,25分给你

好的谢谢啦,你去看看我新提问的问题,也回答一下吧,现在都没人回答,25分给你

追答

我看到问题了, 但不确定能不能做出来

你的新问题我回答了,但被判违规,正在申诉中

先在这里聊吧

上图就是你另外那道题的答案

追问

好的谢谢啦。这个方法是用等号和括号来做区分的标志,我是怕如果写法不统一比如等号前后有空格,那就提取失败了。算了先这样吧,我先把数组的写法格式统一吧

追答

嗯,最好是把格式统一,如果不统一可以把可能出现的情况写出来,看看能用正则匹配不

其实还有其它方法,不过麻烦点,只要你的config.txt是正常可执行的脚本

shell对变量赋值的语法要求比较严格,等号前后不能有空格,否则会报语法错误的. 所以如果你的config.txt中的语句是可执行的脚本,则不会出现你说的等号后面有空格的问题. 如果config.txt不是可执行脚本就另当别论了

温馨提示:答案为网友推荐,仅供参考
相似回答