메뉴를 만드는 방법은 이해하지만 실제로 메뉴를 명령에 연결하는 방법을 알려주는 가이드는 찾지 못했습니다.
나는 다음과 같은 것을 원합니다 :
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
여기에는 몇 가지 예제 스크립트가 있습니다.원천대화에 사용됩니다. 예제 스크립트는 임시 파일을 생성 및 삭제하고 테스트를 허용하는 유틸리티 스크립트를 실행합니다.환경 변수대화 상자의 종료 코드를 변경할 수 있습니다.
적절한 스크립트를 연구함으로써 -메뉴이 경우 위젯에 더 익숙해질 수 있습니다.대화.