脚本:

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。其他条件不起作用。谁能解释我的脚本出了什么问题?

最佳答案

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

if [ :=1 ]


这总是正确的,因为:=1不是一个空字符串。您可能打算写:

if [ "$imgvalue" = 1 ]

07-24 20:55