
我正在嘗試透過更改變數來將 Git 分支名稱新增至我的 Bash 提示字元中,PS1
如下所示:
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
與別名沒有任何關係
gnome-terminal
我正在使用 Ubuntu 桌面,並且在或中工作byobu
,因此我必須找到一個bash
在 X 環境中啟動時獲取的檔案。然後,我.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..
should in.bashrc
和not.profile
。
答案2
我同意 @sylvain-pineau 的觀點,它應該位於 .bashrc 中。
我使用的是我在 github 上分叉的 git-prompt shell 腳本。它與 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 專案的提交者。