]中[[$ answer -eq“mercy”]]的“期望整数表达式”试图编写脚本来玩猜谜游戏。该脚本应该生成一个数字并要求用户猜测。然后脚本会将用户输入的数字与生成的数字进行比较,它应确保游戏继续进行,直到用户乞求怜悯或正确猜测数字为止。它应该向用户提供更高或更低的帮助。一旦发生胜利条件之一,用户应该以某种方式表示祝贺,然后脚本应该结束。如果用户乞求怜悯,它应该回应出一个不同的短语。在[bash
#!/bin/sh
number="$(((RANDOM % 100) + 1))"
echo "Guess a number between 1 and 100, or say 'mercy'"
read answer
until [[ $answer -eq $number || $answer -eq "mercy" ]]
do
if [ $answer -lt $number ]
then
echo "Guess higher"
read answer
else
echo "Guess lower"
read answer
fi
done
if [ $answer -eq "mercy" ]
then
echo "You are a quitter"
else
echo "CONGRATS"
fi
它让只说恭喜你每次与错误代码一起猜对了或者说怜悯时间:line 19: [: mercy: integer expression expected
更好的做法是使用'='比''==:一是要记住少东西bash和POSIX SH之间切换时发生改变。 –