最近使用shell寫一個發布腳本時,由於shell編程是邊學便用的緣故,經驗不足,中間遇到一個問題,一個變量的值作為一個新變量的一部分,而我要根據變量獲得新變量的值,以前沒有遇到過。網絡搜索一番,最后使用eval,解決辦法如下。
1 str=java 2 java_new="wo xiang yao de" 3 4 tmp=${str}_new 5 dest=`eval echo '$'$tmp` 6 echo ${dest} #wo xiang yao de
str變量值java作為新變量java_new的一部分,現在根據str變量獲取java_new的值。
echo $tmp值為輸出java_new,而不是"wo xiang yao de",當時在這里卡了好久,一直覺得tmp值是"wo xiang yao de",郁悶。。。
dest的值為正確值,具體eval的使用還未研究,以后補上。