FreeBSD 9.0 のインストーラに採用されている。Dialogコマンドを試してみた。
dialog --title 'Hello Title' --msgbox 'Hello World' 5 20
ここで、5,20はそれぞれ、ダイアログボックスの縦と横のサイズ。
dialog --infobox 'Please wait' 10 30;sleep 4
sleep無しだとすぐプロンプトに戻る。
次は、シェルスクリプト(c shell)で
set NAME=`dialog --stdout --inputbox 'Enter your name:' 8 40`
echo "your inpted name is $NAME"
入力値の出力先を標準出力に変更しています(デフォルトは、標準エラー出力)。
次は、yes/no の選択
1 dialog --title "title" --yesno "Are you ready?" 6 25
2 switch($status)
3 case '0':
4 echo "Let's go !!"
5 breaksw
6 case '1':
7 echo "Hurry up !!"
8 breaksw
9 default:
10 echo "Invalid return val."
11 breaksw
12 endsw
次は、先ほどのシェルスクリプトを閲覧する
dialog --textbox main.csh 10 60
スクロールも可能になっている。j/kのvimのキーバインドでもスクロールできる。
次は、複数のリストから一つを選択。
1 set COLOR=`dialog --menu --stdout "Choose one:" 10 30 2 1 red 2 green 3 blue ` # 10-> ボックスの高さ 30-> ボックスの幅 2 -> メニューの高さ
2 switch ($COLOR)
3 case 1:
4 echo "You choosed red"
5 breaksw
6 case 2:
7 echo "You choosed green"
8 breaksw
9 case 3:
10 echo "You choosed blue"
11 breaksw
12 endsw
項目数よりメニューの高さが小さいとスクロールできるようになります。
次は、portsのコンパイルでおなじみ複数の項目を選択する。checklist スペースで項目の選択/非選択をスイッチします。
1 set LIST=`dialog --stdout --separate-output --checklist "test" 10 40 3 \
2 1 first item \
3 2 secound item \
4 3 third item`
5 foreach i ($LIST)
6 echo "Proccessing for $i"
7 end
次は、複数の項目から1つの項目を選択する。RadioBox
1 set ITEM=`dialog --stdout --backtitle "Your OS" --radiolist "Select your OS. " 10 40 4 1 Windows off 2 Mac on 3 Linux off 4 FreeBSD off`
2 echo "Your OS is $ITEM"
参考サイト: http://www.linuxjournal.com/article/2807?page=0,0
0 件のコメント:
コメントを投稿