대화 상자 메뉴 - 메뉴 항목 사이의 공간

대화 상자 메뉴 - 메뉴 항목 사이의 공간

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

관련 정보