使用 cat 修改 ~/.bash_profile 似乎强制删除 __git_ps1

使用 cat 修改 ~/.bash_profile 似乎强制删除 __git_ps1

我希望提示符在 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",这可以防止美元函数和报价的扩展。

相关内容