为什么提示16行有语法错误?

#!/bin/sh
echo  "请输入一个最大值:"
read max
read  -p "请输入一个最小值:" min
x='expr $RADOM%(max-min+1)+min'
echo "我写了一个$min~$max之间的整数,你猜猜是多少"
time=0
while  true
do
    read -p "你说是多少" a
    time='expr $time+1'
    if((a==x&&time>=5))
       then
       echo "你猜对了,但你是傻瓜"
       exit 0
    elseif((a==x&&time<5&&time>=2)) //就是这里提示语法错误
       then
       echo "你猜对了,但你是笨蛋"
       exit 0
     elseif((a==x&&time==1))
       then
       echo "你猜对了,你是天才"
       exit 0
     elseif((a>=max))
           then
           echo "太大了"
      else
           echo "太小了"
       fi
done

测试了一下,是条件判断表达式用法错误了,如果去掉你标注的那行代码,其他的分支也会报语法错误的。
建议看看 Shell 的条件判断的用法修正下代码。

变量在使用的时候前面要加$,其他的可参考这篇教程,讲了比较大小和逻辑判断的用法。

感觉这个脚本怪怪的,我把我感觉有问题的地方写一下吧,没有亲测,只是根据自己写脚本的经验做了下判断,仅做参考:
#!/bin/sh
echo "请输入一个最大值:"
read max
read -p "请输入一个最小值:" min
x='expr $RADOM%(max-min+1)+min'
echo "我写了一个$min~$max之间的整数,你猜猜是多少"
time=0
while true
do
read -p "你说是多少" a
time='expr $time+1'
if((a==x&&time>=5)) ###这里比较的应该是变量a、x、time的值,下同,所以应该写成if [[ $a==$x && $time >= 5 ]],另外注意空格的使用,个人习惯使用中括号
then
echo "你猜对了,但你是傻瓜"
exit 0
elseif((a==x&&time=2)) ###elseif应该写成elif,下同,所有的elseif都应该写成elif
then
echo "你猜对了,但你是笨蛋"
exit 0
elseif((a==x&&time==1))
then
echo "你猜对了,你是天才"
exit 0
elseif((a>=max))
then
echo "太大了"
else
echo "太小了"
fi
done