メニュー形式のshell scriptなんてものをよく作っています。
運用担当者は、コマンド打ってくれないのです。

で、昔、「メニュー画面とかに色つけれないの?」って上司に言われて、
内心「そりゃむりじゃないかなぁ」と思い、上司も「別に思いつきだから
気にしないで。」と言っていたので、あまり調べていなかったのですが、
なんとまぁできるらしい。
(ちゃんと調べないといけないなぁと反省)

たとえば、「ACHAMA」を黄色にしたい場合、
# printf "\033[33mACHAMA\033[00m\n"

ACHAMA

さらに背景を赤にしたければ、
# printf "\033[33;41mACHAMA\033[00m\n"

ACHAMA


そして、下線を引きたいならば、
# printf "\033[33;41;04mACHAMA\033[00m\n"

ACHAMA

とします。

\33[が制御文字らしいです。


echo,print でもできました。
# echo "\033[33;41;04mACHAMA\033[00m"
# print "\033[33;41;04mACHAMA\033[00m"


ファイルに出力して、moreで見たらダメでした。「^[[33;41;04mACHAMA^[[00m」って表示。
catはOK。
# echo "\033[33;41;04mACHAMA\033[00m\n" > foo
# cat foo

AIXにlessはないので、調べとりません。

これで、エラー時は赤くするとか、
注意して欲しい時は青くするとか、
メニュー項目は、boldとかが可能になります。

下記参考URLはtcshなのですが、
僕の普段の環境は
AIX 5.1 ML3
korn shell
なので、若干違いがありました。
で、0~9999(無駄?)まで調べた結果。

◆TeraTermの場合

00:ACHAMA初期状態へ
01:ACHAMA背景が白で文字が青
04:ACHAMAアンダーライン
05:ACHAMA背景が白で文字が赤
07:ACHAMA反転
30:ACHAMA文字が黒
31:ACHAMA文字が赤
32:ACHAMA 文字が緑
33:ACHAMA文字が黄色
34:ACHAMA文字が青
35:ACHAMA文字がmagenta
36:ACHAMA 文字がcyan
37:ACHAMA文字が白
40:ACHAMA背景が黒
41:ACHAMA背景が赤
42:ACHAMA背景が緑
43:ACHAMA背景が黄色
44:ACHAMA背景が青
45:ACHAMA背景がmagenta
46:ACHAMA背景がcyan
47:ACHAMA背景が白

そして、dttermだと、
01:bold
02:文字がgray
05:も反転
08:文字が背景色と同化
とさらに若干違う。指定方法が悪いのかしら。。。
aixtermなんて、色が訳解らない状態になってしまいました。。。

どうやら、ターミナルによって違いがあるようだ。
うーむ、0番台は気をつけねばならないかも。。


====
参考
http://www2u.biglobe.ne.jp/~hsaka/
http://www2u.biglobe.ne.jp/~hsaka/tool.html

カテゴリ



トラックバック(0)

このブログ記事を参照しているブログ一覧: カラフルなShell Scriptを作ってみる

このブログ記事に対するトラックバックURL: http://www.achama.com/mt/mt-tb.cgi/102

コメントする

このブログ記事について

このページは、isseiが2004年8月10日 22:26に書いたブログ記事です。

ひとつ前のブログ記事は「エクセルめぇ!!」です。

次のブログ記事は「3周年なのです。」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 4.0

others

My status