대화 상자 및 bash 스크립팅 사용 안내/도움말

대화 상자 및 bash 스크립팅 사용 안내/도움말

메뉴를 만드는 방법은 이해하지만 실제로 메뉴를 명령에 연결하는 방법을 알려주는 가이드는 찾지 못했습니다.

나는 다음과 같은 것을 원합니다 :

dialog--clear --title "n00b's spellbook" \
        --menu "Choose thine spell:" 20 51 4 \
        1 "Name of program"  "blah" \
        2 "Name of other program" "blah" \

그럼 어떻게든 1런 ./program1 2런./program2

답변1

죄송합니다. 요점을 놓치고 있습니다. 대화 상자 패키지인 것을 찾지 못했습니다. @jasonwryan이 마크업을 수정하여 더 명확하게 만들었습니다. – 그래서 이것은 완전한 재작성입니다.

매뉴얼 페이지에 나와 있듯이 나는 당신을 추천합니다.소스 코드 다운로드예제 폴더를 확인해 보세요.

당신이 세상에 있다면 apt-get다음과 같이 말하십시오.

apt-get source dialog
cd dialog*/samples

예/아니요 예의 기본 예(일부 수정 포함):

: ${DIALOG=dialog}

: ${DIALOG_YES=0}
: ${DIALOG_NO=1}
: ${DIALOG_ESC=255}


DIALOG_ERROR=254
export DIALOG_ERROR

$DIALOG --title "YES/NO BOX" --clear "$@" \
        --yesno "A simple Yes/No dialog." 15 61

retval=$?

case $retval in
  $DIALOG_YES)
    echo "YES";;
  $DIALOG_NO)
    echo "NO";;
  $DIALOG_ERROR)
    echo "ERROR!";;
  $DIALOG_ESC)
    echo "ESC pressed.";;
esac

답변2

매뉴얼 페이지대화어디서부터 시작해야 할지 알려주세요:

--menu 텍스트 높이 너비 메뉴 높이 [라벨 항목] ...

나갈 때상표선택한 메뉴 항목에 대한 정보가 대화 상자 출력에 인쇄됩니다.

주어진 예

dialog--clear --title "n00b's spellbook" \
    --menu "Choose thine spell:" 20 51 4 \
        1 "Name of program"  "blah" \
        2 "Name of other program" "blah" \

행당 값이 3개이므로 형식이 잘못된 것 같습니다. 이를 보다 합리적인 것으로 단순화합니다.

dialog --clear --title "n00b's spellbook" \
    --menu "Choose thine spell:" 20 51 4 \
        1 "Name of program" \
        2 "Name of other program"

그래서상표값은 1합계 입니다 2. 기본적으로 대화상자의산출표준 오류이며 리디렉션을 통해 캡처할 수 있습니다.

tempfile=$(mktemp)
dialog --clear --title "n00b's spellbook" \
    --menu "Choose thine spell:" 20 51 4 \
        1 "Name of program" \
        2 "Name of other program" 2> $tempfile

그리고 Case 문에 사용하세요.

case `cat $tempfile` in
(1) ./program1;;
(2) ./program2;;
esac

여기에는 몇 가지 예제 스크립트가 있습니다.원천대화에 사용됩니다. 예제 스크립트는 임시 파일을 생성 및 삭제하고 테스트를 허용하는 유틸리티 스크립트를 실행합니다.환경 변수대화 상자의 종료 코드를 변경할 수 있습니다.

적절한 스크립트를 연구함으로써 -메뉴이 경우 위젯에 더 익숙해질 수 있습니다.대화.

관련 정보