bash で次の条件式を論理否定にしたいのですが、どうすればよいですか?
if [[ $var==2 || $var==30 || $var==50 ]] ; then
do something
fi
上記の式に論理的ではない直接を追加するにはどうすればよいですか。次のようなものに再度変更するのは非常に面倒です。
if [[ $var!=2 && $var!=30 && $var==50 ]] ; then
do something
fi
ヒントをありがとう!
bash で次の条件式を論理否定にしたいのですが、どうすればよいですか?
if [[ $var==2 || $var==30 || $var==50 ]] ; then
do something
fi
上記の式に論理的ではない直接を追加するにはどうすればよいですか。次のようなものに再度変更するのは非常に面倒です。
if [[ $var!=2 && $var!=30 && $var==50 ]] ; then
do something
fi
ヒントをありがとう!
if ! [[ $var == 2 || $var == 30 || $var == 50 ]] ; then
do something
fi
または:
if [[ ! ($var == 2 || $var == 30 || $var == 50) ]] ; then
do something
fi
また、条件演算子とオペランドの間にスペースを入れることをお勧めします。
数値を比較するだけの場合は、代わりに算術演算子を使用するか、次のように使用することを提案する人もいます(( ))
。
if ! [[ var -eq 2 || var -eq 30 || var -eq 50 ]] ; then
do something
fi
if ! (( var == 2 || var == 30 || var == 50 )) ; then
do something
fi
$var
賞賛に値するものではありませんが、変数の名前である場合はデフォルトとして0または別の変数の別の値を意味する可能性があるため、数値ではないか、値がないか、設定されていない場合がある場合は注意が必要です.