變量的間接引用--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

相關文章
相關標籤/搜索