2

我今天开始学习 shell 编程,我正在尝试做一个简单的选项菜单,有 3 个选项,如果用户键入 1,2 或 3,这将是一个有效的输入。除了 1,2,3 之外的任何内容都将是无效输入。我已经尝试过了,但它不起作用,因为下面的代码没有发生任何事情。请指教谢谢。

 #!/bin/bash

 while  :
 do

    clear

       #display menu
       echo "1) choice 1"
       echo "2) choice 2"
       echo "3) choice 3"
       read -p "Enter choice: " choice
       regex = "[1-3]"
       if  [[ $choice -ne $regex ]]; then
           echo "Invalid input"
       else
           case $choice in 
           1) echo "this is choice one"
           2) echo "this is choice two"
           3) echo "this is choice three"
esac
     fi
done
4

2 回答 2

3
于 2013-10-24T13:03:29.470 回答
1

不要,clear否则你什么都看不到。

错误

删除周围的空白=

regex="[1-3]"

您的案件必须以以下结尾;;

1) echo "this is choice one";;
2) echo "this is choice two";;
3) echo "this is choice three";;

建议

介绍一个退出案例:

'x') exit 0;;

[[ ]]如果您使用默认情况作为最后一种情况,则不需要进行测试:

*) echo "invalid input";;
于 2013-10-24T13:03:25.063 回答