我的shell脚本有问题,它在〜/ .bashrc中:
parse_git_branch() {
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/'
}
PS1="\[${debian_chroot:+($debian_chroot)}\033[1;34m\u\033[1;34m@\h\033[0;32m:\w\033[1;35m $(parse_git_branch) $ \033[0m\]"
我需要它来显示当前分支,并且它做得很好,但是当我需要更改目录以获取源〜/。 Bashrc重返工作岗位。
另一个问题是,当我删除错误输入的内容时,它会删除该行上的所有信息,包括vinicius @ pontocom:〜(master)$
答案 0 :(得分:0)
Git已经附带了用于显示当前分支的shell脚本,您可以通过添加
来使用它们source '/usr/local/etc/bash_completion.d/git-prompt.sh'
到OS X上的bash配置文件。如果你正在使用Debian,你应该能够source
相同的文件,但它的安装路径可能不同。
您也可以通过获取此文件来启用Git bash完成:
source '/usr/local/etc/bash_completion.d/git-completion.bash'
答案 1 :(得分:0)
代码中的问题是你在双引号内有一个命令替换,因此当你定义PS1时它只会执行一次。
尝试延迟执行:
PS1="... \$(parse_git_branch) $ \033[0m\]"
答案 2 :(得分:0)
我在.bashrc中使用这段代码
parse_git_branch() {
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ [\1\]/'
}
PS1="${debian_chroot:+($debian_chroot)}\u@\h:\w\[\033[1;36m\]\$(parse_git_branch)\[\033[0m\] $ "
结果是: