10

シェル プロンプトで git ブランチ名を表示できます。しかし、画面を使用しているときはいつでも取得しています

bash: parse_git_branch: command not found

gitブランチは表示されません。スクリーンセッションでもこれを取得するのを手伝ってください。

私は .bash_profile に以下を持っています。

parse_git_branch() {
    git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/
}

export PS1="[\W\$(parse_git_branch)]$ "

私は持っていません.git-completion.bash

システム仕様:

  • OS: OS X 10.8.4
  • ターミナル & iTerm2
  • 画面バージョン: 4.00.03 (FAU) 2006 年 10 月 23 日
4

5 に答える 5

3

これははるかに簡単で、不要な sed を回避します。

parse_git_branch () {

    while read -r branch; do
        [[ $branch = \** ]] && current_branch=${branch#* }
    done < <(git branch 2>/dev/null)

    [[ $current_branch ]] && printf ' [%s]' "$current_branch"

}
于 2014-05-08T04:09:18.577 に答える
2

'sed ステートメントの最後にa がありません:

parse_git_branch() {
    git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
}
export PS1="[\W\$(parse_git_branch)]$ "

そうでなければ、それは私のために働くようですbash-3.2

于 2013-07-24T15:30:11.440 に答える
1

OS X High Sierra で root に切り替えたとき、または起動時に同じエラーが発生しました。rootかどうかを確認ssh-agent /bin/bashしてインストールするように解決しました。/etc/bashrc

if [[ $UID == 0 ]]; then
        PS1="\[\e[1;31;40m\]\u@\h \W\[\e[0m\]\$ "
else
        parse_git_branch() {
                git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
        }
        PS1="\u@\h \[\033[32m\]\w\[\033[33m\]\$(parse_git_branch)\[\033[00m\] $ "
fi
于 2017-10-02T12:12:09.510 に答える