Prayer

在一般中寻求卓越
posts - 1256, comments - 190, trackbacks - 0, articles - 0
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

 

## eval用法三例 ##
## shell:/bin/sh ##
## yhc 2002.09.26 18:00 ##

#例一:
#寻找合符条件的变量名,然后将该变量的值赋予另一变量
v1=aaa
v2=bbb
c=1
if [ $c -eq 1 ]
then
  vname=v$c   #找到符合条件的变量名为v1
  eval vvv="$"$vname ; echo vvv: $vvv    #将变量v1的值赋予vvv,即,使vvv=aaa
  eval vvv='$'$vname ; echo vvv: $vvv    #将变量v1的值赋予vvv,即,使vvv=aaa
 #eval vvv=$$vname   ; echo vvv: $vvv    #错误用法
fi


#例二:#以变量v1的值aaa作为变量名,将变量vaaa的值赋予这一新定义的变量aaa
v1=aaa ; vaaa="This is aaa"
#eval $v1=$vaaa    ; echo aaa: $aaa    #错误用法
#eval $v1="$vaaa"  ; echo aaa: $aaa    #错误用法
eval $v1='$vaaa'   ; echo aaa: $aaa


#例三:
#以变量v1的值aaa作为变量名,并将变量名字串作为值赋予自身
v1=aaa ; vaaa="This is aaa"
eval $v1=$v1   ; echo aaa: $aaa    #与例二的错误用法不同,这一用法是正确的
eval $v1="$v1" ; echo aaa: $aaa    #与例二的错误用法不同,这一用法是正确的
eval $v1='$v1' ; echo aaa: $aaa

该文章转载自[程序人生]:<a href="http://www.procedurelife.com/technical/SHELL/content/lbkjf.html" target="_blank">http://www.procedurelife.com/technical/SHELL/content/lbkjf.html</a>




只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理