2012-05-09 58 views
0

脚本执行错误:壳牌脚本示出,而在Linux的

IMAGE=$imgvalue; 
if [ $imgvalue :=1 ] 
then 
    echo DO=ABC; 
elif [ $imgvalue :=2 ] 
then 
    echo DO=ETC; 
elif [ $imgvalue :=3 ] 
then 
    echo DO=XYZ; 
else 
    echo "$imgvalue is unsupported"; 
    exit 1; 
fi 

以上在脚本中,IMAGE=1IMAGE=2IMAGE=3任何可以是我已分配的值。它只显示DO=ABC。其他条件不起作用。任何人都可以解释我的脚本有什么问题吗?

+7

非常相似,你最后一个[问题](http://stackoverflow.com/q/10509775/1330481)? – UNECS

+1

只为我的教育是不是'IMAGE = $ imgvalue'倒退? – UNECS

+0

或者是因为导出到新的shell而不是命令行shell? – UNECS

回答

0

如果$imgvalue不是一个空字符串,您的第一个测试是语法错误,所以我假设它在您正在进行的测试中为空。在这种情况下,你的第一个测试是等同于:

if [ :=1 ] 

这始终是正确的,因为:=1不是一个空字符串。你可能想写:

if [ "$imgvalue" = 1 ]