具有无与伦比模式的bash case语句

时间:2013-12-03 14:06:18

标签: bash scripting case

好的,所以我尝试在谷歌搜索这个,我似乎无法找到答案。我试图做的是在bash中创建一个case语句,但是如果用户输入的数字不同于列出的数字,则只退出脚本。如何让它给出错误,然后要求用户选择其中一个选项?

例如,我的案例陈述

case $ans in
1) echo "Running Project 1..."
   sleep 2
   ./project1.sh
;;
2) echo "Running Project 2..."
   sleep 2
   ./project2.sh
;;
Qq) echo "Exiting"
    exit
;;
esac

所以除了1,2,Qq以外的任何选项都会出现错误,指出无效选择,请再试一次。

1 个答案:

答案 0 :(得分:1)

你需要一个while循环和一个类似的布尔变量:

flag = true
while [  $flag ]; do
    case $ans in
        1) echo "Running Project 1..."
           sleep 2
           ./project1.sh
        ;;
        2) echo "Running Project 2..."
           sleep 2
           ./project2.sh
        ;;
        Qq) echo "Exiting"
            flag = false
        ;;
    esac
done