本文共 758 字,大约阅读时间需要 2 分钟。
原问题来自:
如何使用变量作为数组名?
比如i=1,array1=(a b c);我如何才能得到 ${array$i[@]}的结果,求详解,在线等,各位大大问题
补充 : 2小时前
[23 root@lvs01 ~]# a=1[24 root@lvs01 ~]# array1=(a b c)[25 root@lvs01 ~]# echo ${array$a[@]}-bash: ${array$a[@]}: bad substitution
解答:
案例1:
[oldboy@oldboy ~]$ a=oldboy[oldboy@oldboy ~]$ oldboy1=test[oldboy@oldboy ~]$ echo "$`echo $a`1"$oldboy1[oldboy@oldboy ~]$ eval echo "$`echo $a`1"test
本题正式解答:
[oldboy@oldboy ~]$ a=1[oldboy@oldboy ~]$ array1=(a b c) [oldboy@oldboy ~]$ echo ${array$a[@]}-bash: ${array$a[@]}: bad substitution[oldboy@oldboy ~]$ echo $\{array$a[@]} ${array1[@]}[oldboy@oldboy ~]$ eval echo $\{array$a[@]}a b c
看过这两个案例的人就了解了eval的作用了,这个知识点在老男孩教育运维班课程提过,可能属于比较偏的知识吧,不过有时起大作用这个命令。
另一个提到eval命令的博文!
linux下set和eval的使用小案例精彩解答(特殊位置变量用法)
转载地址:http://osyql.baihongyu.com/