http://bbs.chinaunix.net/viewthread.php?tid=15788
## 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
Shell脚本中eval用法详解:三例解析
本文详细介绍了Shell脚本中eval函数的三种使用场景,包括寻找合符条件的变量名并赋值,以变量值作为新变量名进行赋值,以及变量名作为值的自赋值。通过具体的例子演示了正确和错误的用法,并提供了避免常见错误的方法。
372

被折叠的 条评论
为什么被折叠?



