Help us understand the problem. What is going on with this article?

Mac の echo に色がつかない・・・

More than 5 years have passed since last update.

Ubuntu 使っていると ANSI エスケープシーケンス使って:

$ echo '\e[32mRED!!!\e[0m'

Screenshot from 2015-01-07 12:59:05.png

みたいなことをしても色がつくけれど 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 に倣うならどう書くのがいいんだろう。

k_ui
ねこほしい
http://k-ui.jp
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away