메뉴 항목 사이에 공백을 추가하고 싶습니다 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