从 case 语句导出变量

从 case 语句导出变量

我接手了一个比下面长得多的脚本。目前,您必须手动输入环境,然后export将其推送到 git 存储库,然后拉取 master。我宁愿在确认这就是您想要的后,通过编号问题使用变量来导出选择。例如,回显您所做的选择,并显示“您确定是/否/取消(y/n/c)吗”(我可以做这部分)。

我不知道如何捕获所做的选择并将其导出。

#!/bin/bash

clear
PS3='Please enter your choice(s): '
options=("Test" "UAT" "PreProd" "Prod" "Quit")
select opt in "${options[@]}"
do
    case $opt in
        "Test")
            echo "You chose Test"
            ;;
        "UAT")
            echo "You chose UAT"
            ;;
        "PreProd")
            echo "You chose PreProd"
            ;;
        "Prod")
            echo "You chose Prod"
            ;;
        "Quit")
            break
            ;;
        *) echo invalid option;;
    esac
done



export ENVIRONMENTS=(test uat preprod)

答案1

只需在 case 语句中分配变量即可:

declare -a ENVIRONMENTS
case $opt in
    "Test")
        echo "You chose Test"
        ENVIRONMENTS+=("test")
        ;;
    "UAT")
        echo "You chose UAT"
        ENVIRONMENTS+=("uat")
        ;;
    "PreProd")
        echo "You chose PreProd"
        ENVIRONMENTS+=("preprod")
        ;;
    "Prod")
        echo "You chose Prod"
        ENVIRONMENTS+=("prod")
        ;;
    "Quit")
        break
        ;;
    *) echo invalid option;;
esac
#...
export ENVIRONMENTS

相关内容