-2

最近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 では動作しません。

私は何が欠けていますか?

4

2 に答える 2