Linux Bash编号范围回显语法错误

Linux Bash编号范围回显语法错误,linux,bash,echo,Linux,Bash,Echo,我在编程和使用Linux命令来帮助我理解命令和脚本方面是个新手,但是我发现我正在创建的脚本给了我一个echo语法错误,我正在琢磨为什么它给了我这个错误。假设整个脚本要求输入一个范围内的数字,读取键盘输入,并循环直到输入正确的数字。还告诉用户他们对每个猜测的正确性或错误性 我不知道脚本是否能正确运行,脚本中还有什么错误,所以请给我反馈并告诉我如何解决问题。提前谢谢 #!/bin/bash loop=y for i in $(seq 10) echo Please pick a number bet

我在编程和使用Linux命令来帮助我理解命令和脚本方面是个新手,但是我发现我正在创建的脚本给了我一个echo语法错误,我正在琢磨为什么它给了我这个错误。假设整个脚本要求输入一个范围内的数字,读取键盘输入,并循环直到输入正确的数字。还告诉用户他们对每个猜测的正确性或错误性

我不知道脚本是否能正确运行,脚本中还有什么错误,所以请给我反馈并告诉我如何解决问题。提前谢谢

#!/bin/bash
loop=y
for i in $(seq 10)
echo Please pick a number between 1 and 10.
Read varnumber
echo you entered: $varnumber
if 
varnumber=3
then
echo Correct number, access granted...nothing
break
if 
varnumber <2>4
then echo Incorrect number, please try again.
loop=y
#/bin/bash
循环=y
以美元表示的i(序号10)
请选择一个介于1和10之间的数字。
读取变量号
您输入的回声:$varnumber
如果
varnumber=3
然后
回显正确号码,允许访问…无
打破
如果
第4号
然后回显不正确的号码,请重试。
循环=y

由于存在多个语法错误,朋友们要求使用shellcheck工具。看看这个工具;这将有助于识别语法错误

回到脚本,请将
guessNumber
更改为任意数字,然后运行以下操作:

#!/bin/bash
guessNumber=3
let "maxGuess=$guessNumber + $(( ( RANDOM % 100 )  + 1 ))"
while  [ 1 ] ; do
    printf "\n\nPlease pick a number between 1 and $maxGuess: "
    read varnumber
    echo "   you entered: $varnumber"
    if [ "$varnumber" == "$guessNumber" ] ; then
        echo "   Correct number, access granted...nothing"
        break
    else
        echo "   Incorrect number, please try again."
    fi
done
需要知道的事情:

  • guessNumber
    =>您可以配置正确的猜测
  • maxGuess
    将根据您的猜测数进行计算
  • $((随机%100)+1))
    =>生成一个介于1-100之间的随机数。将%后的数字更改为范围更大或更小
  • 使用
    while
    循环,而不是
    for
    循环,这将使游戏继续进行,直到猜到正确的数字。[Ctrl+c组合键断开]
  • 输入
    guessNumber
    退出循环/游戏

  • 希望它能给出一个如何工作的想法,愉快地学习bash脚本

    你应该先把它输入,然后修复它告诉你的一切。已经声明,shellcheck.net是您在这方面的朋友。接下来,查阅一些bash教程,了解如何执行循环和if语句。