最近Ubuntuの実行を開始した長年のMac(GUIを読む)ユーザーで、有益でカラフルなPS1およびターミナル出力のために、.bashrc(Ubuntu)ファイルと.bash_profile(Mac)をカスタマイズするのに1週間ほど費やしました。
私はこの小さな小さな機能を持っています:
function colors2nums()
{ for code in {0..255}; do echo -e "\e[38;05;${code}m $code: Test"; done }
コード付きの 256 色を表示するので、必要な色を選択できます...
Ubuntu (14.0.4 LTS、Gnome ターミナル) では完全に動作しますが、Mac (iTerm と Terminal.app の両方で OS 10.7.5) ではまったく動作しません。
Ubuntu の .bashrc ファイルの PROMPT_COMMAND 関数は、Mac の PROMPT_COMMAND 関数が .bash_profile にあるのとまったく同じで、行ごとにコピー & ペーストされます。
両方の PS1 プロンプトは色が同じで (Mac 側では奇妙な間隔がいくつかあります)、ls -GFa (または任意のバリアント) は LS_COLORS と .dircolors で設定された色で印刷されます。そのため、色は一部の出力では機能しますが、すべてではありません。Mac では、PS1 で最後にエスケープされた色 (緑、白など) によって設定された端末入力と同じ色で 256 行が表示されます。
えっ?!?
はい、トラップの 2 つのバリエーションを試しました - DEBUG (ハック?):
#trap 'echo -ne \e[0m' DEBUG
trap 'printf "\e[0m" "$_"' DEBUG
これは、Ubuntu側の出力をリセットするために機能します。どちらも Mac では動作しません。
私は何が欠けていますか?