Bash

特定ディレクトリにいたらbashプロンプトで注意を促す

趣味でWebサービス作っていて,1台のサーバに開発環境と本番(?)環境が同居しています.
たまに取り違えて危ない目に合うので,本番環境のディレクトリにいることが分かるようにしてみました.

完成図

bash_window.png

方法

プロンプトをカスタマイズしてgitブランチを表示する - Qiita
にエッセンスが詰まっているのですが,「bashのプロンプトは環境変数PS1で制御できる」「$(command)という書き方で実行結果の埋め込み(コマンド置換)ができる」という2点を押さえると割と自由が効きます.

is_production()
{
  curdir=$(pwd)
  case $curdir in
  *production*)
    echo "PROD|"
  esac
}

export PS1="\[\033[41m\]\$(is_production)\[\033[40m\]\u@\[\033[32m\]\h\[\033[00m\]:\[\033[92m\]\w\[\033[00m\] $ "

※部分一致なので厳密じゃないですが

おわりに

危ない目を防ぐという本来の目的を達成できているかどうかは微妙です.ちゃんちゃん.