bash 쉘 스크립트의 `if ($num1 -eq 0) || ($num2 -eq 0)`에 무슨 문제가 있나요?

bash 쉘 스크립트의 `if ($num1 -eq 0) || ($num2 -eq 0)`에 무슨 문제가 있나요?

내 코드:

#!/bin/bash
read num1
read num2
if ($num1 -eq 0) || ($num2 -eq 0) 
 then exit
else 
 echo "$(($num1+$num2))"
 echo "$(($num1-$num2))"
 echo "$(($num1*$num2))"
 echo "$(($num1/$num2))"
fi

이 코드를 실행하면 다음 오류가 발생합니다.

./txt: line 4: 1: command not found
./txt: line 4: 1: command not found

num1 = <any number>다음을 입력할 때 왜 이러한 오류가 나타나는지 모르겠습니다 .num2 = <any number>

답변1

문법 오류. 더블 및/또는 싱글/더블 (( ))조합이 필요합니다.==[ ]

이것들은 잘 실행됩니다:

if [ $num1 -eq 0 ] || [ $num2 -eq 0 ] #mind the gap between brackets and vars.... 

또는

if (($num1==0)) || (($num2==0))

이중 괄호 구문은 bash의 산술 확장 논리를 준수하는 숫자에만 사용할 수 있습니다.

문자열 또는 숫자 변수에는 단일 또는 이중 괄호를 사용할 수 있습니다.

관련 정보