我想在 的菜单项之间添加一些空格dialog menu
。
有什么办法可以做到吗?
我创建了一个菜单,其中包含再次调用菜单的“空按钮”。这看起来像我想要的。
但问题是,我现在需要按两次向下箭头按钮才能到达下一个按钮,因为它也会重定向到空按钮。
是否可以停用某些菜单项,但将它们留在那里作为占位符?
我的代码如下所示:
main_menu() {
dialog --clear
LANG=de_DE
dialog --no-cancel --ok-label "Auswahl" --default-item '1' --backtitle "" --title "TestMenu"\
--menu "\n Test Test" 25 80 24\
'' ""\
1 " Menupunkt1"\
'' ""\
2 " Menupunkt2"\
'' ""\
3 " Menupunkt3"\
'' ""\
4 " Menupunkt4"\
'' ""\
5 " Menupunkt5"\
'' ""\
0 " Abmelden" 2>$_temp
opt=${?}
if [ $opt != 0 ]; then rm $_temp; exit; fi
menuitem=`cat $_temp`
echo "menu=$menuitem"
case $menuitem in
1) ${Funktion_Button1}
main_menu;;
2) ${Funktion_Button2}
main_menu;;
3) ${Funktion_Button3}
main_menu;;
4) ${Funktion_Button4}
main_menu;;
5) ${Funktion_Button5}
main_menu;;
0) rm $_temp; rm -f /tmp/menu.*; rm -f /tmp/answer.*; exit;;
esac
}
答案1
您可以按照您添加的方式添加这些按钮,并且所有按钮都指向主菜单,您可以稍后更改。
如果可能,不要使用箭头键移动,而是使用选项数字进行导航,这样可以轻松跳过无效/停用的选项,例如:
#!/bin/bash
#Access Choices by numbers
PS3='Please enter your choice: '
options=("Option 1" "Option 2" "Option 3" "Quit")
select opt in "${options[@]}"
do
case $opt in
"Option 1")
echo "you chose choice 1"
;;
"Option 2")
echo "you chose choice 2"
;;
"Option 3")
echo "you chose choice $REPLY which is $opt"
;;
"Quit")
break
;;
*) echo "invalid option $REPLY";;
esac
done