num=$(($RANDOM%11))
input=10
while [$num=input];do
read -p "Enter an Integer between 0 and 10:" input
echo "correct"
if [ $num -ne input ];then
echo "incorrect guess"
fi
不断意外结束语法错误?
答案 0 :(得分:1)
除了丢失的logic
之外,您的代码中还有一些重要的syntax
和done
错误。首先,由于test
错误,您的syntax
条款失败。 [
测试构造需要space
和[
之间的]
以及内部的测试子句。您的测试还包含syntax
个错误,这些错误与变量名称前的$
和第一个中的=
不一致有关。它们都应该写成:
[ $num -ne $input ]
您的逻辑最好将echo "correct"
作为else
添加到if
子句,以防止correct
输出每个数字。没有这些问题的版本看起来像:
#!/bin/bash
num=$(($RANDOM%11))
input=10
while [ $num -ne $input ];do
read -p "Enter an Integer between 0 and 10: " input
if [ $num -ne $input ];then
echo " incorrect guess"
else
echo " correct!"
fi
done
exit 0