1

Я создаю целый ряд функций 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), как это?

0