コマンドラインで動作するアプリで、結果を出力時、カラー出力させて見やすくしたいと思って調べた方法
ANSI エスケープシーケンスというのを使うらしい。
文法がわかりずらいので、もう答えだけにしてきます。
以下は文字に色をつける場合。前後に挟む型と、文字をどうしたいかが指定されています。
echo "\033[31m{$str}\033[0m";
31mの部分が赤色という指定です。
数字の部分を使って各色や、背景色、アンダーライン、点滅などもあるのでここの表で確認
https://misc.flogisoft.com/bash/tip_colors_and_formatting
ということで、目的に合わせた各色を出力するfunctionを組んだ方が楽
function colorLog($str, $type = 'info') {
switch ($type) {
case 'error':
echo "\033[31m{$str}\033[0m";
break;
case 'success':
echo "\033[32m{$str}\033[0m";
break;
case 'warning':
echo "\033[33m{$str}\033[0m";
break;
case 'info':
echo "\033[36m{$str}\033[0m";
break;
default:
# code...
break;
}
}
文字色と背景など複数を組み合わせたい時は数字の部分を;(セミコロン)でつなげる
echo "\033[31;47m{$str}\033[0m";
コメント