映画のエンドロール観る派?観ない派?

こんにちは。
よろしくお願いします。

Linux(RHEL5)にて、以下のようなシェルスクリプトを作成しました。
ユーザにアンインストールを問い合わせるもので、
yesの時は処理が進み、noの時は処理が中断、
それ以外を入力した場合、再入力を促すようにしています。

echo ""
echo "*** アンインストールを実行しますか? ***"
read -p "  >>> 実行する場合「yes」、しない場合は「no」を入力してください <<< " YESNO

while (test $YESNO != yes) && (test $YESNO != no)
do
echo ""
read -p "  >>> 「yes」もしくは「no」を入力してください <<<  " YESNO
done

if (test $YESNO == yes)
thencontinue
else
echo "****** アンインストールをキャンセルしました ******" &&
exit
fi


しかし、
何も入力せずに「Enter」を押した場合、
本来なら、再入力を促すように表示したいのですが、
以下のようにエラーが出て、終了してしまいます。

XXX.sh: line YYY: test; !=; unary operator expected
XXX.sh: line ZZZ: test; ==; unary operator expected
****** アンインストールをキャンセルしました ******

恐らくロジックのどこかに見落としがあると思うのですが、
原因がよく分かりません。

よろしくお願いします。

A 回答 (1件)

等号・不等号の左辺に空白文字列があるのではなく、左辺がないと判断されています。

    • good
    • 0
この回答へのお礼

ありがとうございます!
左辺がないと判断されているのですか。
何も記入しないEnter以外はうまくいっているので、
気付きませんでした。

お礼日時:2007/08/29 12:59

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!