我正在尝试在shell中创建一个小文本游戏来学习bash。 我想捕获用户输入数字1到n并回答答案中的()之间的字符串。我也想确保用户没有把垃圾放进去,所以我选择了下面的代码,但它没有处理来自()部分的字符串,我可以处理,如果有任何输入但我无法处理差异来自输入。
#!/bin/bash
#
echo -e "You are in front of the gardenhouse."
echo -e "\n"
echo -e "1 - forward (door.1)"
echo -e "2 - left (woods.2)"
echo -e "3 - right (water.3)"
while true
do
# (1)
read -p "Which way to go right now? " benutzereingabe
# handle the userinput
case $benutzereingabe in
[13]* ) echo "You walk to the $direction. \n"
break;;
[nN]* ) exit;;
* ) echo "Only Answers (1 bis 3) are possible. \n";;
esac
done
感谢阅读。我很确定有更好的方法来满足我的需求。任何帮助将不胜感激
答案 0 :(得分:1)
你确实至少有两个错误:
function MyFunction(someVar: string, callback: () => void = () => { }) {
callback();
}
应为[13]
或[1-3]
[123]
声明break
; case
就够了。