Существует множество переменных для присвоения значения. Я смог сделать это глупо, скопировав один и тот же фрагмент кода, а затем изменив другой фрагмент. Например, я хочу сделать следующее: export country = "US" export city = "LA"
Глупый способ с пользовательским интерфейсом ввода:
printf "\nPlease assign country$ \n" ;
if [[ $country == nil ]] ; then
printf "Current value is nil\n"
else
printf "Current value is: $country\n"
fi ;
printf "country: " ;
read -e -i $country country_
export country=$country_
А для города я просто ищу - заменяю "страна" на "город" и пропускаю код, что глупо, но работает. Теперь я хочу улучшить читаемость, а также удобство сопровождения кода, купить размещение переменных в списке и затем выполнить итерацию по этому списку. Наполовину отработанный код, после поиска в Google:
declare -a var_list=("country" "city")
for var in ${var_list[*]}
do
printf "\nPlease assign $var \n" ;
if [[ ${!var} == nil ]] ; then
printf "Current value is nil\n"
else
printf "Current value is: ${!var}\n"
fi ;
printf "${bold}$var: ${normal}" ;
read -e -i ${!var} {$var_}
export $var={$var_}
done
Следующие 2 строки кода по-прежнему некорректны для выполнения того, что я хочу, чтобы они делали:
read -e -i ${!var} {$var_}
export $var={$var_}
Iхотел бы получить помощь по этому вопросу.