プロンプトの$を終了コードによって色変更する
後輩から教わったTips。
$ echo foo
↑これの「$」の色を前のコマンドの終了コードが0以外だったら赤色表示にしたい。
$ false $ # ↑$を赤くする
Mac のターミナルを使っているので .bash_profile
を編集して変数 PS1 をいじる。
RETURN_CODE_DOLLAR='$([ $? -eq 0 ] && echo -en \[\e[37m\] || echo -en \[\e[31m\])\$\[\e[37m\]' PS1="${RETURN_CODE_DOLLAR} "
これでよろしい。PS1の中で $()
を使って色を埋め込む。
ついでにカレントディレクトリを表示したかったら、こう。
CURRENT_DIR="\[\e[36m\]\W\[\e[37m\]" RETURN_CODE_DOLLAR='$([ $? -eq 0 ] && echo -en \[\e[37m\] || echo -en \[\e[31m\])\$\[\e[37m\]' PS1="${CURRENT_DIR}${RETURN_CODE_DOLLAR} "
こうなる。