最近使用shell写一个发布脚本时,由于shell编程是边学便用的缘故,经验不足,中间遇到一个问题,一个变量的值作为一个新变量的一部分,而我要根据变量获得新变量的值,以前没有遇到过。网络搜索一番,最后使用eval,解决办法如下。
str=java
java_new="wo xiang yao de" tmp=${str}_new
dest=`eval echo '$'$tmp`
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的使用还未研究,以后补上。