您好我不知道这是否会重复,但我真的没有看到这段代码中的错误。它在then语句中给出了一个错误,我认为没有错误。 我已经对代码中断的两行进行了评论。 这是代码:
#!/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
答案 0 :(得分:0)
答案 1 :(得分:0)
您需要学习如何空格和缩进以使代码清晰易读。
#!/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 #initialize variables
while [ $result -eq $compvar ]; do
if [ $ops = "+" ]; then
result = $((firstvar+secondvar))
elif [ $ops = "-" ]; then
result=$((firstvar-secondvar))
else
echo "Input valid operation !!!"
fi
((++counter))
done
编写代码与编写文献相同。有一些表格可以让读者轻松阅读(即使只是你6个月之后)。上面的代码令人困惑,稍后会咬你。添加评论。
while循环是无偿的,什么都不做 - -eq至少应该是-ne。计数器可以初始化为整数,以避免可能出现的问题,但它也从未使用过。