%20%7C%7C%20(%24num2%20-eq%200)%60%EC%97%90%20%EB%AC%B4%EC%8A%A8%20%EB%AC%B8%EC%A0%9C%EA%B0%80%20%EC%9E%88%EB%82%98%EC%9A%94%3F.png)
내 코드:
#!/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의 산술 확장 논리를 준수하는 숫자에만 사용할 수 있습니다.
문자열 또는 숫자 변수에는 단일 또는 이중 괄호를 사용할 수 있습니다.