变量的间接引用--ABC

假设一个变量的值是另外一个变量的名字.咱们有可能从第一个变量中取得第 2 个变量的值么?bash

好比,若是 a=letter_of_alphabet 接着 letter_of_alphabet=z,那么咱们能从 a 中获得 z 么?测试

答案是:固然能够,而且这被称为间接引用.它使用一个不经常使用的符号 eval var1=\$$var2.spa

#!/bin/bashit

a=letter_of_alphabet变量

letter_of_alphabet=zdate

echo引用

echo "a = $a"   #直接引用  letter_of_alphabetlet

eval a=\$$anew

echo "Now a = $a" #间接引用 zab

echo

通过测试,eval a=\$$a只能间接引用一次。

#!/bin/bash

a=letter_of_alphabet

letter_of_alphabet=$z

z=new

echo  -----

echo "a = $a"   #直接引用  letter_of_alphabet

eval a=\$$a

echo "Now a = $a" #间接引用,结果为空。 

echo -----

3.执行eval 命令

     1 #!/bin/bash

     2 seed=` eval date `

     3 R=$seed

     4 echo "$seed"

     5 echo "$R"

结果:

2016年 04月 23日 星期六 00:56:36 CST

2016年 04月 23日 星期六 00:56:36 CST

相关文章
相关标签/搜索