Bash надає варіанти та передає змінну на вибір


0

Намагаючись надати можливість користувачам інсталятора вибрати "Розвиток" або "Стабільний". За замовчуванням інсталятор робить "git checkout 1.1.0", але я перетворюю 1.1.0 $GIT_VERSIONі намагаюся зробити чистий спосіб встановити це на початку.

Спроба встановити $GIT_VERSIONна masterабо 1.1.0з опцією 1,2 або 3 (3 припиняється). У мене бурно почалося те, що я намагаюся зробити ...

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

конкретно, це неправильно: $GIT_VERSION=master- не кладіть сигіл ліворуч від завдання.
Глен Джекман

Також запитують на сайті stackoverflow.com/q/22239152/1126841 (що є правильним сайтом для цього питання).
чепнер

Відповіді:


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

Дякую! Чи можна було б просто встановити значення (master або 1.1.0) як змінну, яку слід вставити в git checkout $Variable_Nameоператор say, пізніше? Частина git скрипту з’являється набагато пізніше, оскільки я отримав усі дані користувача на початку.
d3c0y

Звичайно, просто зберегти значення змінної: branch=${versions[REPLY-1]}.
choroba
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.