В Bash, как я могу вызвать функцию, которая получает ввод от пользователя через другую функцию? - PullRequest
0 голосов
/ 31 октября 2019

Я хочу создать функцию в Bash, которая получает ввод от пользователя через другую функцию. Однако функция с диалоговым окном пользователя (get_version_input_dialog ()) не вызывается. Возможен ли этот метод?

check_values () {
 allowedValues=$1
 for i in "${allowedValues[@]}"
    do
        if [ $i = $2 ]
            then
            result='match'
        fi
    done
    if [ "${result}" = 'match' ]
        then
            echo 'true'
        else
            echo 'false'
    fi
}


#### get variables from user
get_version_input_dialog () {
    echo "Which version would you like?"
    echo " > Please enter 1, 2, 3, or 4"
    read version
    echo version
}

#### display error message to user if incorrect value is selected
#### $1 = array of allowed values
get_version_error_dialog () {
    allowed_values=$1
    echo "Please enter one of these values: ${allowed_values[@]}"
}

get_version () {
    allowed_values=(1, 2, 3, 4)
    thisVersion=${get_version_input_dialog}
    echo "${thisVersion}"
    valueCheck=$(check_values "${allowed_values[@]}" "${thisVersion}")

    if  [[ "${valueCheck}" = "false" ]]
        then 
            get_version_error_dialog ${allowed_values}
            get_version 
        else
            echo "you chose ${version}"
    fi
}

get_version

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...