Мне интересно, как получить значение из подстановочного знака случая? У меня есть массив, который генерирует для меня меню. Затем у меня есть случай, который определяет, какой вариант выбран. Последняя часть оператора case — это подстановочное значение. Я ищу, чтобы получить значение, используемое для подстановочного знака.
Вот код, который я использую:
menu=()
menu+=('Option 1')
menu+=('Option 2')
menu+=('Option 3')
menu+=('Option 4')
menu+=('Quit')
echo "What would you like to install?"
echo " "
select opt in "${menu[@]}"
do
case $opt in
'Option 1' )
echo "Doing Option 1"
;;
'Option 2' )
echo "Doing Option 2"
;;
'Option 3' )
echo "Doing Option 3"
;;
'Option 4' )
echo "Doing Option 4"
;;
'Quit' )
echo "Quitting installations"
exit;
;;
* )
echo "Invalid input: ${opt}"
;;
esac
done
В приведенном выше примере значение «Неверный ввод» всегда пустое. Я могу ввести «foobar» как вариант, и он не отображается. Я также изменил переменную только на $opt
, но она все еще не распечатывается.