BASH論理問題; IFとORを使用する文字列変数は困難です。

BASH論理問題; IFとORを使用する文字列変数は困難です。

var1BASHで使用される文字列があります。 3 つの値にすることができます。

var1=on

var1=off

または、var1等しくないか等しくない場合がありますonoff

$var1以下のように内容をテストするためにBASHでifステートメントを設定したいと思います。

$var1文字列が " on"または" "の場合、offifステートメントを終了します。$var1他のものと同じ場合は続行してください...

-ne, !=, ||そして-oを含む多くの可能性を試しましたが、完全に混乱しています。

以下に私が使っているもの、使って得たもの、欲しいものを貼り付けました。

var1=on

if [[ ${var1} != 'on' || $var1 != 'off' ]]; then echo var1 is NOT equal to \"on\" or \"off\". Var1 is equal to $var1 else echo var1 IS equal to \"on\". Var1 is equal to $var1 fi

これは生産します。

var1 is NOT equal to "on" or "off". Var1 is equal to on

私が望むもの。

var1 IS equal to "on". Var1 is equal to on

答え1

#!/bin/bash
read -p "introduce a value: " var1

if [[ ${var1} != 'on' && ${var1} != 'off' ]];
then
        exit
else
        echo "CORRECT"
fi

関連情報