我如何创建具有多项选择菜单变量的 shell 脚本?

how do i create a shell script with multiple choice menu variables?

这是我正在尝试做的事情

Please pick from the following  
1) area1  
2) area2  
3) area3

Now pick a place based on the area you chose  
1) place1  
2) place2  
3) place3

Based on $area and $place here is what you need...

我的猜测是我需要 case 和 if 语句的组合,但我无法解决这个问题。

按照@Barmar 的建议使用select 语句。

基于您的示例:

echo 'Please pick from the following'

select area in area1 area2 area3
do
        case $area in 
        area1|area2|area3)   
                break
                ;;
        *)
                echo "Invalid area" 
                ;;
        esac
done

echo 'Now pick a place based on the area you chose'
select place in place1 place2 place3
do
        case $place in
        place1|place2|place3)
                break
                ;;
        *)
                echo "Invalid place"
                ;;
        esac
done

echo "Based on $area and $place here is what you need..."

我使用 a|b|c) 对多个选项进行分组,但您可以为每个选项提供单独的代码路径。 *) 可以用作 "else" 子句。使用 break 跳出菜单循环。在 case 语句中的子句之间使用 ;;,在单个子句中的语句之间使用 ;