Bash プロンプト (別名 PS1 環境変数) をカスタマイズするベスト プラクティスは何ですか?

Bash プロンプト (別名 PS1 環境変数) をカスタマイズするベスト プラクティスは何ですか?

PS1次のように変数を変更して、Bash プロンプトに Git ブランチ名を追加しようとしています。

PS1=`echo "$PS1" | sed 's/\\\\\$ $/\$(__git_ps1)\\\\\$ /'`

また、私の理解が正しければ、~/.bashrcパーソナライズ目的で更新することは推奨されません。私が見つけたすべての記事では、そのような目的で または を更新することを推奨して.profileいます.bash_profile。そのため、この行を挿入するのに最適な場所を探しています。

これまでに試した場所は次のとおりです。

  • .profile: 出典なしgnome-terminal
  • .bash_profile: 出典なしgnome-terminal
  • .bash_login: 出典なしgnome-terminal
  • .bash_aliasesPS1: 動作しますが、エイリアスとは関係ないと思います

私は Ubuntu Desktop を使用しており、gnome-terminalまたはで作業しているbyobuので、X 環境で起動したときにソースとなるファイルを見つける必要があります。次に、に値を割り当てた後にソースとなる他のファイルを でbash調べました。 と がありますが、これらはこの目的には適していないと思います。.bashrcPS1.bash_aliases/usr/share/bash-completion/bash_completion

他の選択肢は何ですか? Bash プロンプトをカスタマイズするベストプラクティスは何ですか?

答え1

次の HOWTO によれば、.bashrc$PS1 を調整するのに最適な場所は実際には次のとおりです。

PS1 文字列は に設定する必要があります.bashrc。これは、非対話型の bash が PS1 を設定解除するからです。bash のマニュアル ページには、PS1 の有無が、対話型の bash セッションと非対話型 (つまりスクリプト) の bash セッションのどちらであるかを知る良い方法であることが説明されています。

[...]

PS1=..blah..したがって、は であり.bashrc、 ではないことを強調する必要があります.profile

ソース:http://www.tldp.org/HOWTO/Bash-Prompt-HOWTO/setps.html

答え2

@sylvain-pineau の意見に同意します。.bashrc に配置する必要があります。

私は github でフォークした git-prompt シェル スクリプトを使用しています。これは git、svn、hg で非常にうまく機能します。どのブランチにいるか、どのファイルが新しく、どのファイルが変更されたか (異なる色で)、および最後の bash コマンドのステータスが表示されます。

次のようにダウンロードできます:

wget https://raw.githubusercontent.com/stalet/git-prompt/master/git-prompt.sh
chmod +x git-prompt.sh

次に、.bashrc でテストを使用して、git-prompt スクリプトが使用可能かどうかを確認し、それをソースします。

[[ -s ~/config/git-prompt.sh ]] && source ~/config/git-prompt.sh

免責事項、私は git-prompt github プロジェクトのコミッターです。

関連情報