여러 조건이 있는 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 게이트 :)

관련 정보