上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

kiyoshi's help見栄えを良くするプロジェクトその2

すごく便利なの見つけたっす。

dialog

Ubuntuでもそのものズバリのパッケージをインストールできます。

たとえば、以下:


#!/bin/bash
a=$(blkid|sed -e "s/\"//g"|sed -e "s/^/\"/"|sed -e "s/$/\"/"|tr " " _)
i=1
for b in $a
do
c=$(echo $c $i "$b")
i=$(expr $i + 1)
done
dialog --menu "Select partition" 10 500 10 $c
exit 0


をシェルスクリプトにして実行すれば、blkidで表示されるパーティションの一覧を選択するメニューがグラフィカルにCLI(端末)のような状態で表示されます。

選択結果を変数aaに代入したいなら、


#!/bin/bash
a=$(blkid|sed -e "s/\"//g"|sed -e "s/^/\"/"|sed -e "s/$/\"/"|tr " " _)
i=1
for b in $a
do
c=$(echo $c $i "$b")
i=$(expr $i + 1)
done
aa=$(dialog --stdout --menu "Select partition" 10 500 10 $c)
# echo $aa
exit 0


でOK。こりゃ便利♪

他にも
--checklist

--fselect
--radiolist
なんかが便利そう。

・・・で、initramfsに組み込もうとしたのですが、
/usr/bin/dialog
だけではだめで、
/lib/libncursesw.so.5
/lib/libm.so.6
およびそれらのリンク先をinitramfsにコピーしたのですが、initramfs内のinitでdialogを実行すると、
cannot initialize curses
・・・
error opening terminal linux
とのこと。
googleって、情報を見つけて

export TERM="linux-vt"
してから
dialogを使おうとすると今度は
error opening terminal linux-vt
・・・orz.

やっぱり、ncursesが失敗します。前のtputが組み込めなかったときと同じです。がっくり。

でGoogleって、
http://webcache.googleusercontent.com/search?q=cache:8tBsiZbb7pwJ:en.gentoo-wiki.com/wiki/Initramfs+initramfs+ncurses&cd=12&hl=ja&ct=clnk&gl=jp&source=www.google.co.jp
を見つけました。それによると、
ldd バイナリファイル
でそのバイナリファイルが必要としているファイルが分かるとのこと。

$ ldd /usr/bin/dialog
で。

また、ncursesには
/usr/share/terminfo/l/linux
が必要らしいです。これか??

$ sudo find / -iname terminfo
で見つけました。

/lib/terminfo/l/linux
です。

こいつを
~/init$ mkdir -p lib/terminfo/l
~/init$ cp /lib/terminfo/l/linux lib/terminfo/l/
でコピーして、initramfsを作り、起動してみると・・・
やったぁぁぁ!ncursesが正常動作したようで、dialogが使えました!!
感無量(TへT)

2011/3/30追記

~/init$ cp /usr/bin/tput usr/bin/
でtputも使えます。
tput cols

tput lines
とか
tput cup 縦座標 横座標
とか
tput clear
とか、
tput setf 色番号
便利です。
参考:
http://www.ibm.com/developerworks/jp/linux/aix/library/au-learningtput/
関連記事

テーマ : Linux
ジャンル : コンピュータ

コメントの投稿

管理者にだけ表示を許可する

プロフィール

kiyoshi

Author:kiyoshi
FC2ブログへようこそ!

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QRコード
since 2011/9/25
現在の閲覧者数:
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。