그래서 기본적으로 3개의 변수가 0인지 테스트하고 싶습니다. 그 중 하나라도 해당되지 않으면 신고해야 합니다. 이것이 내가 얻는 것입니다:
if [[ $result -ne 0 && $resultmax -ne 0 && $resultmin -ne 0 ]]
then
echo "There is something terribly wrong."
fi
이것은 작동하지 않습니다. 내가 어디서 망쳤는지 아세요?
답변1
테스트하고 싶다면하나이 변수의 개수는 0이 아니므로 ||
연산자가 필요합니다. 아니요 &&
.
$ if [[ 1 -ne 0 && 0 -ne 0 && 0 -ne 0 ]] ; then echo "There is something terribly wrong."; fi
$ if [[ 1 -ne 0 || 0 -ne 0 || 0 -ne 0 ]] ; then echo "There is something terribly wrong."; fi
There is something terribly wrong.
답변2
이제 모든 변수가 0이 아닌지 테스트하고 오류가 보고됩니다. 노력하다:
if [[ $result -ne 0 || $resultmax -ne 0 || $resultmin -ne 0 ]]
then
echo "There is something terribly wrong."
fi
답변3
변수가 0이 아닌지 테스트하려면 or 연산자를 사용하십시오 ||
(이미 제안한 대로).
if [[ $result -ne 0 || $resultmax -ne 0 || $resultmin -ne 0 ]]
then
echo "There is something terribly wrong."
fi
그러나 수치 계산을 수행하고 ksh
(or bash
, or zsh
)를 사용하는 경우 명확성을 위해 다음 구문을 사용하는 것이 좋습니다.
if (( result != 0 || resultmax != 0 || resultmin != 0 ))
then
printf "%s\n" "There is something terribly wrong."
fi