Я создаю целый ряд функций ZSH и хотел бы предоставить интерактивное меню, позволяющее мне переходить к различным функциям, собирать необходимые данные и затем вызывать функции. Я написал что-то вроде этого, чтобы инкапсулировать функциональность меню:
get_input(){
local result_name=$1
for((i=2; i <= $ARGC; i++)); do
echo ${argv[i]}
done
read x
eval "${result_name}=$x"
}
вызывая это так:
test_get_option(){
selected_option=''
get_input selected_option 'heres the prompt' '1) opt 1' '2) opt 2'
case $selected_option in
1) do_option_1;;
2) do_option_2;;
*) echo "please choose a selection from the options above";;
esac
}
который работает, но это неуклюже. Я предпочел бы иметь возможность определить некоторую иерархическую структуру данных (XML или вложенные списки или что-то еще), чтобы определить дерево опций и вызываемые функции.
Кто-нибудь знает о системе (или плагин oh-my-zsh), как это?