bash:捕捉用户输入并执行几乎相同的命令

bash:捕捉用户输入并执行几乎相同的命令,bash,Bash,我正在尝试在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

我正在尝试在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

谢谢你的阅读。我很确定有更好的方法来满足我的需求。如果您有任何帮助,我们将不胜感激。

您至少有两个bug:

  • [13]
    应该是
    [1-3]
    [123]
  • 您不能从
    案例
    语句中
    中断
    <代码>就足够了

  • 看起来这是用谷歌翻译的。我不知道问的是什么,特别是“我无法处理输入的差异”。我知道这不是一个德语网站,但你可以在原始问题下面添加原始德语问题吗?@l0b0可以用两种语言发布问题吗?有没有关于这个的元帖子?