PHONE_TYPE
変数に3つの有効な値のいずれかが含まれていることを確認したいと思います。
if [ "$PHONE_TYPE" != "NORTEL" ] || [ "$PHONE_TYPE" != "NEC" ] ||
[ "$PHONE_TYPE" != "CISCO" ]
then
echo "Phone type must be nortel,cisco or nec"
exit
fi
上記のコードは私には適していないので、次のように試しました。
if [ "$PHONE_TYPE" == "NORTEL" ] || [ "$PHONE_TYPE" == "NEC" ] ||
[ "$PHONE_TYPE" == "CISCO" ]
then
: # do nothing
else
echo "Phone type must be nortel,cisco or nec"
exit
fi
この種のタスクを実行するためのよりきれいな方法はありますか?
ベストアンサー1
私はあなたが探していると思います:
if [ "$PHONE_TYPE" != "NORTEL" ] && [ "$PHONE_TYPE" != "NEC" ] &&
[ "$PHONE_TYPE" != "CISCO" ]
これらの等価物の規則を次のように呼びます。ドモーガンの法則あなたの場合は、次のことを意味します。
not(A || B || C) => not(A) && not(B) && not (C)
ブール演算子またはand andの変更を確認してください。
そしてあなたはこれをやろうとしています:
not(A || B || C) => not(A) || not(B) || not(C)
これは明らかに動作しません。