0

脚本 :

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です。その他の条件が機能していません。誰かが私のスクリプトの何が問題になっているのか説明できますか?

4

1 に答える 1

0

が空の文字列でない場合$imgvalue、最初のテストは構文エラーであるため、実行しているテストでは空であると想定しています。その場合、最初のテストは次のようになります。

if [ :=1 ]

:=1は空の文字列ではないため、これは常にtrueです。あなたはおそらく書くつもりでした:

if [ "$imgvalue" = 1 ]
于 2012-11-06T20:10:46.323 に答える