我正在使用linux实用程序对话框创建一个菜单(见下文),我听说可以为这些清单创建一个树状结构。但是我在创建这样的东西的联机帮助页中找不到任何类型?它真的有可能 - 如果是的话:怎么样? 请参阅http://i51.tinypic.com/2ir9qfl.png vs http://i56.tinypic.com/35jasmh.png了解它的实际效果以及它的外观。原始图片是使用dialog --checklist创建的。
首先,谢谢你的回答。然而,“对话”这个词的含糊不清以及缺乏正确的并排比较(因为我出乎意料地匆忙而无法仔细检查 - 对不起)使得这个问题难以理解。
希望这会有所帮助: 它的外观如下:http://i51.tinypic.com/2ir9qfl.png
它应该如何:http://i56.tinypic.com/35jasmh.png
我仍然想要使用'对话'实用程序 - 我只想要一个树状视图,它显示允许对一些项目进行分组以获得更好的概览。它应该是一个相当复杂的脚本的前端,可以检查,编译,获取和做一些其他花哨的东西,并且希望我做这个脚本的人说他确信对话中的树状视图是可能的正如他之前看到的那样,但却无法为我提供必要的代码。
答案 0 :(得分:1)
您不能使用Linux对话框实用程序来执行单页清单层次结构
相反,创建一系列菜单来实现相同的语义结构,虽然远非最佳,但我会授予你。
另一种选择是编写一个脚本(也许在perl / python / ruby中),它使用ncurses / curses库来构建UI的这一部分。请参阅here (python example)以帮助您入门。
说过他们在对话框中看到过像树一样的树的人要么......
有关ncurses / curses的更多信息,请参阅http://www.linuxselfhelp.com/HOWTO/NCURSES-Programming-HOWTO/
答案 1 :(得分:0)
您发布的示例在格式化方面很难匹配,但是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
我认为不可能以问题树为中心。
我希望这会有所帮助。
P.S。因为您似乎是新用户,如果您得到的答案可以帮助您,请记住将其标记为已接受,并且/或者给它一个+(或 - )作为有用的答案。