好的,所以我尝试在Google上搜索此问题,但我似乎找不到答案。我要做的是在bash中创建一个案例语句,但是如果用户输入的数字与列出的数字不同,那就退出脚本。我该如何使其错误,然后要求用户选择其中一个选项?

例如,我的案例语句

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以外的任何其他选项都会出现一个错误,即选择无效的选择,请重试。

有帮助吗?

解决方案

您需要一个时循环和这样的布尔变量:

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
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top