特殊命令eval的用法两例

原问题来自:http://ask.oldboyedu.com/?q-24.html

如何使用变量作为数组名?  

比如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命令的博文!

linuxseteval的使用小案例精彩解答(特殊位置变量用法)

http://oldboy.blog.51cto.com/2561410/1175971


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值