假设一个变量的值是另外一个变量的名字.咱们有可能从第一个变量中取得第 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