2011-10-18 82 views
0

__git_ps1返回(unknown)而不是什麼,當我不在一個git目錄。這是我不太滿意的改變。所以我試圖擴展它以恢復舊的行爲。所以,我在~/.bashrc加入這一點,並確信/etc/bash_completion之前它來源:如何擴展__git_ps1?我得到「命令未找到」

__git_silent_ps1() { 
    local b='$(__git_ps1 " (%s)")' 
    if ["$b" != " ((unknown))"]; then 
     echo -n $b 
    fi 
} 

但是,當我在我的提示定義使用__git_silent_ps1,我得到:

-bash: [$(__git_ps1 " (%s)"): command not found 

當我只是用__git_ps1在我的提示定義中,我沒有得到那個錯誤,但它顯示了分支。任何想法爲什麼我得到的錯誤,我怎麼能解決它?

+0

這是...奇怪。我的'__git_ps1'版本從來沒有這樣做過。你有一個非常舊的版本?或者可能是一個流浪的不完整的.git目錄? – Cascabel

+0

不,但可能是git和我的主目錄佈局(在〜/ .git中有一些全局設置)的問題 –

+0

嗯,這是你的問題。 Git認爲它知道它似乎在一個存儲庫中,並嘗試並未能弄清楚哪個分支被檢出。您可能想要重命名它。 – Cascabel

回答

3

正如一個人不寫rmsomefile.txt,不應該寫["$b"

if [ "$b" != " ((unknown))" ]; then 
+0

謝謝。我確定這是'__git_ps1'調用。 –