%20%E3%82%92%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%9E%E3%82%A4%E3%82%BA%E3%81%99%E3%82%8B%E3%83%99%E3%82%B9%E3%83%88%20%E3%83%97%E3%83%A9%E3%82%AF%E3%83%86%E3%82%A3%E3%82%B9%E3%81%AF%E4%BD%95%E3%81%A7%E3%81%99%E3%81%8B%3F.png)
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_aliases
PS1
: 動作しますが、エイリアスとは関係ないと思います
私は Ubuntu Desktop を使用しており、gnome-terminal
またはで作業しているbyobu
ので、X 環境で起動したときにソースとなるファイルを見つける必要があります。次に、に値を割り当てた後にソースとなる他のファイルを でbash
調べました。 と がありますが、これらはこの目的には適していないと思います。.bashrc
PS1
.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
。
答え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 プロジェクトのコミッターです。