Linux Dialog: древовидный контрольный список? - PullRequest
2 голосов
/ 30 августа 2011

Я создаю меню с помощью диалогового окна утилиты linux (см. Ниже), и я слышал, что можно создать древовидную структуру для этих контрольных списков.Однако я не могу найти какой-либо тип в man-странице, которая создает такую ​​вещь?Действительно ли это возможно - и если да, то как?См. http://i51.tinypic.com/2ir9qfl.png против http://i56.tinypic.com/35jasmh.png о том, как это выглядит на самом деле и как оно должно выглядеть.Оригинальная картинка была создана с использованием диалога --checklist.


Прежде всего, спасибо за ответ.Однако неоднозначность слова «диалог» и отсутствие правильного параллельного сравнения (не смог перепроверить, поскольку я неожиданно торопился - извините) затруднило понимание вопроса.

Надеюсь, это поможет: Как это выглядит: http://i51.tinypic.com/2ir9qfl.png

Как это должно выглядеть: http://i56.tinypic.com/35jasmh.png

Я все еще хочу использовать утилиту 'dialog' - я просто хочу древовидное представление, котороепоказывает, что позволяет группировать некоторые элементы для лучшего обзора.Это должен быть внешний интерфейс для довольно сложного сценария, который может извлекать, компилировать, извлекать и делать другие интересные вещи, и человек, который хотел, чтобы я сделал этот сценарий, сказал, что он уверен, что древовидное представление в диалоге возможнокак он видел это раньше, однако не смог предоставить мне необходимый код.

Ответы [ 2 ]

1 голос
/ 31 августа 2011

Вы не можете использовать утилиту диалога Linux для создания иерархии одностраничных контрольных списков

Вместо этого создайте серию меню для достижения той же семантической структуры, хотя, я думаю, это будет далеко не оптимально.

Другой вариант - написать скрипт (возможно, в perl / python / ruby), который использует библиотеку ncurses / curses для создания этого раздела пользовательского интерфейса. См. здесь (пример Python) , чтобы помочь вам начать.

Примечание.

Человек, который сказал, что видел древовидное представление, составленное в диалоге, имеет либо ...

  • Видно, это сделано с исправленной / нестандартной версией диалога, которая может существовать. (?!)
  • Увидел пользовательское приложение ncurses / curses, которое предоставляло интерфейс, аналогичный диалоговому окну, поэтому возникла путаница.

Подробнее о курсах / проклятиях см. http://www.linuxselfhelp.com/HOWTO/NCURSES-Programming-HOWTO/

0 голосов
/ 31 августа 2011

Образец, который вы разместили, будет трудно сопоставить при форматировании, но все bash / ksh / zsh поддерживают конструкцию select, которая создает меню и позволяет обрабатывать результаты выбора.

PS3="Choose an option "
select opt in start mid end quit
do
    case $opt in
        start) echo "starting";;
        mid)   echo "Standing by";;
        end)   echo "Standing by";;
        quit)  break;;
     esac
done

Example run

1) start
2) mid
3) end
4) quit
Choose an option
1
starting
4
# prompt >

В зависимости от ваших требований, вам может понадобиться обернуть этот непрерывный цикл, например:

while true ; do
   select ...
done

Я не думаю, что будет возможно центрировать дерево вопросов в качестве вашего примера.

Надеюсь, это поможет.

PS, поскольку вы выглядите новым пользователем, если вы получаете ответ, который помогает вам, пожалуйста, не забудьте пометить его как принятый и / или дать ему + (или -)в качестве полезного ответа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...