Case ステートメントから変数をエクスポートする

Case ステートメントから変数をエクスポートする

以下のスクリプトよりはるかに長いスクリプトをインポートしました。現在は手動で環境に入り、exportgitリポジトリにプッシュしてからマスターをインポートする必要があります。私はこれがあなたが望むものであることを確認した後、番号付きの質問から選択を導き出すために変数を使用したいと思います。たとえば、選択した内容をエコーし​​て「はい/いいえ/キャンセルしますか(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

関連情報