bashrcで直前のexit statusが正常終了・異常終了に応じてプロンプトの表示を切り替えさせる

個人的にはローカルではzshを使っているのだけど、ローカルのbashrcファイルをリモートでファイルを配置せずに利用する方法を知ってリモートサーバ用のbashrcを設定するようになった。 で、zshでやっているようにプロンプトに顔文字と直前のコマンドの成功・失敗に応じて切り替えを行わせるようにしたので、(わざわざ残しとくほどのものでもなさそうだけど)一応その内容を備忘として残しておく。

直前のコマンドの終了ステータスを取得する場合、PROMPT_COMMAND を使って取得させる必要がある。 なので、以下のような設定を.bashrcに書いてやるといいだろう。

# カラーコードをexport
export COLOR_RED=$'\E[0;31m'
export COLOR_GREEN=$'\E[0;32m'

function __command_prompt() {
    # 前のコマンドの終了コードを取得
    local EXIT="$?"

    # 前のコマンドの終了コードに応じてプロンプトの種類を変更
    if [ $EXIT -eq 0 ];then
        export PS1='\[${COLOR_GREEN}\](`・ω・´)\[${COLOR_NONE}\] '
    else
        export PS1='\[${COLOR_RED}\](´ ;ω;\`)\[${COLOR_NONE}\] '
    fi
}

PROMPT_COMMAND=__command_prompt

個人的に使っている設定はこちらにおいてあるので、必要であれば参考にしてもらえればと。 個人的な好みで今は2段のプロンプトにしている。