我已将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'
Windows 7中的环境,万一有人想知道。
答案 0 :(得分:2)
在您的情况下,您使用\
有许多转义字符。 "..."
和'...'
之间的区别在于shell在双引号内部查看以解释转义序列,而在单引号的情况下,它从字面上取反斜杠。请尝试以下方法:
echo '\$foo'
echo "\$foo"
你会发现差异。