我正在做一个基本问题,即通过在第一和第二个用户输入中添加、产品、减法、除法我不明白我哪里出错了,因为它没有通过任何测试用例。
约束:- -100<=x,y<=100, y != 0
read -p "enter first number:" first
read -p "enter second number:" second
if [[ ("$first" -ge "-100" -a "$first" -ge "100") -a ("$second" -ge "-100" -a "$second" -ge "100") ]]
then
if [ $second -ne 0 ]
then
echo "$first + $second" | bc
echo "$first - $second" | bc
echo "$first * $second" | bc
echo "$first / $second" | bc
fi
fi
'''
不要使用过时的
-a
运算符和括号在测试之间进行逻辑与。而是&&
在几个[ ... ]
测试之间使用:上面还显示了正确的测试,以确保第一个和第二个变量都在范围 (-100,100) 内并且第二个变量不为零。
由于您没有提及您使用的是什么外壳,因此我已将非标准
[[ ... ]]
测试转换为标准[ ... ]
测试。如果您正在使用
bash
,您可以选择使用或者,通过算术展开,
您还可以使用 inside 和 链接多个
&&
AND[[ ... ]]
测试(( ... ))
。您还不需要四个单独的
bc
. 一个就够了: