メニューの作成方法は理解していますが、実際にメニューをコマンドにリンクする方法を教えるガイドは見つかりませんでした。
私は次のようなものが欲しい:
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
これにはいくつかのサンプルスクリプトがあります。源泉会話に使用されます。サンプルスクリプトは、一時ファイルを作成および削除し、テストを許可するユーティリティスクリプトを実行します。環境変数ダイアログボックスの終了コードを変更できます。
適切なスクリプトを研究することによって -メニューこの場合、ウィジェットに慣れることができます。会話。