在搜索google,bash手册页和其他有关SO的问题之后,我发现了类似的帖子,但是我无法确定导致此特定问题的原因。
我已经在本地安装了git-prompt.sh。在bash --login shell中一切都很好。在Windows和Linux上,这都是一件好事。
但是,一旦我执行了bash子shell(例如,以便我可以临时修改我的环境等),我就会收到错误消息:
$ ... <in/out of repos and all good>
$ bash
bash: __git_ps1: command not found
在Windows上不会发生此问题。
需要注意的是,我通过git设置了我的dotfiles。因此,我可以在Windows和Linux上运行我的配置,它们都具有完全相同的git-prompt.sh文件。
这都是新安装的操作系统。
到目前为止,我最好的 guess 是,在Windows而非Linux下运行时,会执行不同的shell交互语义。我已经尝试了各种bash调用(--login,-norc即可以手动设置内容)等。这种怀疑有3个原因:
我肯定知道的一件事是,第一个登录bash(“ sub”)shell在两个平台上均可正常运行。
有什么想法,反馈或建议吗?
谢谢
马特
答案 0 :(得分:0)
这看起来像您的PS1
(或执行类似功能的东西)已导出,但您的__git_ps1
函数本身却未导出。
要导出功能,请使用export -f __git_ps1
。
答案 1 :(得分:0)
已解决。该问题是由于上述(2)的组合(即提示的间接不同版本)和我自己在警卫人员中引用正则表达式的错误报价所致。
谢谢您的帮助。