Shell脚本在Linux中执行时显示错误

时间:2012-05-09 06:23:51

标签: linux shell shellexecute

脚本:

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。其他条件不起作用。任何人都可以解释我的脚本有什么问题吗?

1 个答案:

答案 0 :(得分:0)

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

if [ :=1 ]

始终为true,因为:=1不是空字符串。你可能想写:

if [ "$imgvalue" = 1 ]