为什么parse_git_branch仅在Docker终端窗口中

时间:2015-08-28 21:53:26

标签: bash docker

为什么在Docker Quickstart Terminal报告下运行bash终端

bash: parse_git_branch: command not found

在我键入的每个bash命令之后,如果我直接运行终端它可以正常工作吗?

在我的〜/ .bash_profile的Mac上(OS 10.9.5)我定义了一个函数来在我的提示符中显示git分支,当我运行终端时它工作正常除非我通过Docker Quickstart运行终端终端

在这两种情况下(正常运行终端,或通过Docker Quickstart终端)echo $BASH_VERSION显示相同的结果(3.2.53(1)-release)。

在这两种情况下,如果我cat ~/.bash_profile我看到同样的事情,并且在底部明确定义了函数:

parse_git_branch() {
     git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
}
export PS1="\u@\h \[\033[32m\]\w\[\033[33m\]\$(parse_git_branch)\[\033[00m\] $ "

1 个答案:

答案 0 :(得分:0)

Docker Quickstart终端似乎没有启动登录shell,因此不会执行.bash_profile。通常,您可以在PS1中设置.bashrc的值,以便为所有交互式shell定义它,这是大多数(所有?)Linux终端模拟器的开始。< / p>

在Mac OS X中,终端模拟器通常会启动登录shell,因为它们本身不是从 shell启动,而是由Finder启动。

好的做法是在.bashrc设置提示,但要在OS X下从.bash_profile获取该文件。