【发布时间】:2014-01-19 15:50:45
【问题描述】:
我已将bashrc 文件设置如下(用于Git Bash)
source ~/git-prompt.sh
source ~/git-completion.bash
export GIT_PS1_SHOWDIRTYSTATE=true
PS1='\[\e[0;37m\]\342\224\214\342\224\200[\[\e[0m\]\[\e[1;32m\]\u\[\e[0;37m\]:\[\e[1;34m\]\h\[\e[0;37m\]]\342\224\200[\[\e[33m\]\W\[\e[0;37m\]]\342\224\200[\[\e[1;33m\]\@\[\e[0m\]]$(__git_ps1)\n\[\e[0;37m\]\342\224\224\342\224\200\342\224\200\[\e[1;36m\]\$\[\e[0m\] '
忽略八进制字符,它缩短为:
PS1='\[\e[0;37m\]-[\[\e[0m\]\[\e[1;32m\]\u\[\e[0;37m\]:\[\e[1;34m\]\h\[\e[0;37m\]]-[\[\e[33m\]\W\[\e[0;37m\]]-[\[\e[1;33m\]\@\[\e[0m\]]$(__git_ps1)\n\[\e[0;37m\]-\[\e[1;36m\]\$\[\e[0m\] '
这很好用,除了当我尝试使用以下段获取命令状态符号时(如 ArchWiki 所示):
\$([[ \$? != 0 ]] && echo \"[\[\e[1;31m\]X\[\e[0;37m\]]-\") # again, shortened the octal codes for readability
我注意到的唯一不同是在 ArchWiki 上使用双引号而在我的例子中使用单引号。所以,我也在我的文件中使用了双引号:
PS1="\[\e[0;37m\]\$([[ \$? != 0 ]] && echo \"[\[\e[1;31m\]X\[\e[0;37m\]]-\")-[\[\e[0m\]\[\e[1;32m\]\u\[\e[0;37m\]:\[\e[1;34m\]\h\[\e[0;37m\]]-[\[\e[33m\]\W\[\e[0;37m\]]-[\[\e[1;33m\]\@\[\e[0m\]]$(__git_ps1)\n\[\e[0;37m\]-\[\e[1;36m\]\$\[\e[0m\] "
然后包含上述代码段:
PS1="\[\e[0;37m\]-[\[\e[0m\]\[\e[1;32m\]\u\[\e[0;37m\]:\[\e[1;34m\]\h\[\e[0;37m\]]-[\[\e[33m\]\W\[\e[0;37m\]]-[\[\e[1;33m\]\@\[\e[0m\]]$(__git_ps1)\n\[\e[0;37m\]-\[\e[1;36m\]\$\[\e[0m\] "
这很好用,只是我的 git-auto-completion 不再起作用。如果我进入一个 git 存储库,$(__git_ps1) 不会返回任何内容。如果我从 git repo 中重新启动 bash,它会显示当前分支,但在我离开目录或切换分支时再次无法执行。
以下说法有区别吗:
x="yzx"
x='yzx'
PS
Windows 7 中的环境,以防万一。
【问题讨论】: