假設一個變量的值是另外一個變量的名字.咱們有可能從第一個變量中取得第 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