我希望提示符在 repo 目录中显示当前的 git-branch。例如,
[desktop repo(master)]$
在我的终端中我可以输入:
cat <<EOF >> ~/.bash_profile
PS1='\[\e[0;32m\][\h \W\[\e[m\]$(__git_ps1 "(%s)")\[\e[0;32m\]]\$ \[\e[m\]'
EOF
但 .bash_profile 中的结果附加文本是:
PS1='\[\e[0;32m\][\h \W\[\e[m\]\[\e[0;32m\]]$ \[\e[m\]'
结果中不存在 __git_ps1 方法。如果我使用 vim 手动编辑 .bash_profile,然后使用 source ~./bash_profile,则 PS1 语句包含 __git_ps1 方法,并且工作正常。
这个 cat 语句是一个更大的“引导”脚本的一部分,但我已经删除了所有不相关的内容。我已经在 Ubuntu 上成功实现了这个。我正在尝试让它在 CentOS 虚拟机上运行。
谢谢!
答案1
尝试一下cat << "EOF"
,这可以防止美元函数和报价的扩展。