Bash는 옵션을 제공하고 선택 시 변수를 전달합니다.

Bash는 옵션을 제공하고 선택 시 변수를 전달합니다.

설치 프로그램 사용자에게 "개발" 또는 "안정"을 선택할 수 있는 옵션을 제공하려고 합니다. 기본적으로 설치 프로그램은 "git checkout 1.1.0"을 수행하지만 저는 1.1.0을 변환 $GIT_VERSION하고 처음에 이를 설정하는 깔끔한 방법을 만들려고 노력하고 있습니다.

1,2 또는 3 옵션으로 또는 옵션을 설정하려고 합니다(3은 종료 $GIT_VERSIONmaster) . 1.1.0제가 하려는 일의 시작이 막막했습니다...

PS3='Do you want to install Lastest Stable or Latest Developement: '
options=("Stable" "Developement" "Quit")
select GIT_VERSION in "${options[@]}"
do
    case $GIT_VERSION in
        "Stable")
            $GIT_VERSION=1.1.0 
            echo "Installing 1.1.0..."
            ;;
        "Developement")
            $GIT_VERSION=master
            echo "Installing latest developement version..."
            ;;
        "Quit")
            break
            ;;
        *) echo invalid option;;
    esac
done

답변1

나는 아마도 다음과 같은 일을 할 것입니다

#! /bin/bash
names=(Stable Developement)
versions=(master 1.1.0)
select option in "${names[@]}" Quit ; do
    if (( REPLY > 0 && REPLY <= 1 + ${#names[@]} )) ; then
        if [[ $option != Quit ]] ; then
            git checkout ${versions[REPLY-1]}
        fi
        exit
    else
        echo Invalid reply.
    fi
done

관련 정보