【发布时间】:2026-01-30 00:35:01
【问题描述】:
你好我不知道这是否会重复,但我真的没有看到这段代码中的错误。它在 then 语句中给了我一个错误,我认为没有错误。 我已将 cmets 放在代码中断的两行。 代码如下:
#!/bin/bash
echo -n "Enter first value:"
read firstvar
echo -n "Enter second value:"
read secondvar
echo -n "Enter last value:"
read compvar
echo -n "Enter operation:"
read ops
counter=0
result=0
while [ $result -eq $compvar ]
do
if [ $ops -eq "+" ]
then result = $((firstvar+secondvar))
elif [ $ops -eq "-" ]
then result = $((firstvar-secondvar))
#elif[ $ops -eq "*" ]
#then result = $((firstvar\*secondvar))
#elif[ $ops -eq "/" ]
#then result = $((firstvar/secondvar))
else
echo "Input valid operation !!!"
fi
(($counter++))
done
【问题讨论】:
-
说“有一个错误”而不告诉确切的错误信息和错误的位置,就像去看医生并说“它在某处受伤”而不说它在哪里以及如何受伤。
-
发帖前使用shellcheck
-
是的,谢谢,我发现了我的错误。抱歉打扰了。
-
-eq是比较数字,而不是字符串。 -
为什么这是
elif链呢?使用case $ops in ....