Ubuntu 使っていると ANSI エスケープシーケンス使って:
$ echo '\e[32mRED!!!\e[0m'
みたいなことをしても色がつくけれど Mac の echo はだと上手く行かない:
$ echo '\e[32mRED!!!\e[0m'
\e[32mRED!!!\e[0m
対処方法 1. coreutils をインストールする
Ubuntu と同じ coreutils の echo を使う。
MacPorts で入れると、gecho って名前でインストールされるので、alias echo=gecho しましょう。
対処方法 2. 書き方を変える
文字列リテラルのまえに $ を書く:
$ echo $'\e[32mRED!!!\e[0m'
$'...' で括られた文字列は \e, \a, \n などのエスケープを認識してくれるようになります。
ちょっとしたスクリプトで使うならこっち。
POSIX に倣うならどう書くのがいいんだろう。
