У меня есть большое количество переменных конфигурации, для которых я хочу, чтобы пользователи выдавали подтверждение значений. Таким образом, может существовать какая-то переменная, указывающая номер запуска, и я хочу, чтобы скрипт спросил у пользователя, соответствует ли текущее значение переменной. Если пользователь отвечает, что значение не в порядке, скрипт запрашивает новое значение и присваивает его переменной.Как написать функцию Bash, которая подтверждает значение существующей переменной с пользователем
Я предпринял начальную попытку выполнить эту функцию, но есть некоторые трудности с ее запуском; он останавливается. Я бы оценил некоторую помощь в решении проблемы, а также любую критику подхода, который я использую. Код выглядит следующим образом:
confirmVariableValue(){
variableName="${1}"
variableValue="${!variableName}"
while [[ "${userInput}" != "n" && "${userInput}" != "y" ]]; do
echo "variable "${variableName}" value: "${variableValue}""
echo "Is this correct? (y: continue/n: change it/other: exit)"
read userInput
# Make the user input lowercase.
userInput="$(echo "${userInput}" | sed 's/\(.*\)/\L\1/')"
# If the user input is "n", request a new value for the variable. If the
# user input is anything other than "y" or "n", exit. If the user input
# is "y", then the user confirmation loop ends.
if [[ "${userInput}" == "n" ]]; then
echo "enter variable "${variableName}" value:"
read variableValue
elif [[ "${userInput}" != "y" && "${userInput}" != "n" ]]; then
echo "terminating"
exit 0
fi
done
echo "${variableValue}"
}
myVariable="run_2014-09-23T1909"
echo "--------------------------------------------------------------------------------"
echo "initial variable value: "${myVariable}""
myVariable="$(confirmVariableValue "myVariable")"
echo "final variable value: "${myVariable}""
echo "--------------------------------------------------------------------------------"
Этот вопрос не соответствует теме, потому что речь идет о просмотре кода. – chepner
№ Код не работает.Я не уверен, почему и прошу помощи. – d3pd
@chepner: Только часть обзора кода. Существует сообщение об ошибке: «он заглох». – bishop