複数の条件を持つifステートメントは機能しません。

複数の条件を持つifステートメントは機能しません。

私はifステートメントに関するすべての記事を読んでいますが、それらのどれも私の問題を解決していないようです。私はシェルスクリプトを作成しており、操作(加算、減算、除算)に対するユーザー入力を検証する必要があります。私のコードは次のとおりです。

valid_operator(){
  if [[ "$operator" != "+"  ||  "$operator" != "-" || "$operator" != "/"]]; then
   echo "Sorry, $operator, ++ is not a valid operator. Please re-enter valid operator"
   main
  fi
}

ベストアンサー1

IIUCの前にスペースがないので、これは単に構文エラーだと思います。値がテストされていない場合は、]]IIUCが必要ですか?ウィジェットをテストしましたが、正常に動作します。true$operatorif-then

valid_operator(){
  if [[ "$operator" != "+"  &&  "$operator" != "-" && "$operator" != "/" ]]; then
    echo "Sorry, $operator, ++ is not a valid operator. Please re-enter valid operator"
    main
  fi
}

3つの入力XORゲート :)

おすすめ記事