我正在制作大量 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 插件)吗?