`if ($num1 -eq 0) || 有什么问题bash shell 脚本中的 ($num2 -eq 0)`?

`if ($num1 -eq 0) || 有什么问题bash shell 脚本中的 ($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

语法错误。您需要 double与或 single/double(( ))组合==[ ]

这些运行正常:

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

或者

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

双括号语法只能用于符合 bash 算术扩展逻辑的数字。

单括号或双括号可用于字符串或数字变量。

相关内容