bash Color 256

前々回、tree コマンドを Python で自作したんだけど。
「ディレクトリを青色にしたけど tree コマンドとなんか色が違う」
の本家 tree コマンドの色を出力したい。

bash:tip_colors_and_formatting – FLOZz’ MISC

こんなページを発見。
bash ってここまで高機能だったのか、マジで知らなかった!
というか \033 だけじゃなく \e とか \x18 でも良かったのか。
アンダーラインも点滅も反転も、256 色で色指定さえも思いのまま。

しかし文句の付けようがない完璧で解りやすいまとめだなぁ。
こんな有用なページを筆者も作りたい、それは別の話で。

とにかく 256 色に指定するには以下にすればいいのね。

echo -e "\e[38;5;numm***string***\e[0m"

色見本ではドレが tree コマンドの青なのかよくわからない。
自前でソレっぽいのをいくつか選んで出力して確かめてみよう。

#!/bin/bash

for cl in {31..33} {37..39} {73..75} ; do
	echo -e "\e[38;5;${cl}m_texts\e[0m"
done

sh_color

どうやら 33 で正解のようだ。

ところで下方に対応ターミナルの表がありますが。
macOS の Terminal.app でも printf にすればイケます。
おまけに指定は sh でも bash でも zsh でもオケ。

mac_sh