我在编程和使用 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
最佳答案
由于出现多处语法错误, friend 们要求使用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
将根据您的猜测数计算$(( ( RANDOM % 100 ) + 1 ))
=> 生成 1-100 之间的随机数。更改 % 后的数字以具有更大或更小的范围。- 使用
while
循环代替for
循环,这将使您的游戏继续进行,直到猜出正确的数字。 [Ctrl+c 中断] - 键入
guessNumber
以退出循环/游戏。
希望它能告诉您它是如何工作的,祝您学习 bash 脚本愉快!!
关于Linux Bash Number Range echo 语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43484742/