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

관련 정보