Bash Mac OS Catalina:PS1在我更改分支或目录时未更新

Bash Mac OS Catalina:PS1在我更改分支或目录时未更新,bash,git,macos,terminal,ps1,Bash,Git,Macos,Terminal,Ps1,我试图在bash_配置文件中将PS1设置为 .bash_profile #!/bin/bash # ..... parse_git_branch() { git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/' } parse_pwd() { basename $PWD } PS1=''$(parse_pwd)''$(parse_git_branch)' $ ' 已获得预期的输出:(git分支名称

我试图在bash_配置文件中将
PS1
设置为

.bash_profile
#!/bin/bash

# .....

parse_git_branch() {
  git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
}

parse_pwd() {
  basename $PWD
}

PS1=''$(parse_pwd)''$(parse_git_branch)' $ '
已获得预期的输出:
(git分支名称)$

问题:

当我更改分支机构或更改项目时,
PS1
详细信息不会更新(即分支机构名称或项目目录名称)。我必须手动运行
source~/.bash_profile
才能在终端中查看这些更改

我在谷歌上搜索并尝试了一些建议,比如

不确定,但这和我的狂欢有关吗?我目前正在使用zsh

$ echo $SHELL
/bin/zsh

如果要更改Zsh的提示:

PROMPT=”⚡️%{$fg[红色]]}☣︎☯︎⚰︎☤⚚♱♚☨☥☥☨♚♱⚚☤⚰︎☯︎☣︎ %{$fg[红色]]}⚡%{$fg[绿色]]}%T⚡️%{$fg[绿色]]]}%{$fg[黄色]]}%d%{$fg[黄色]]}⚡️"

^这只是设置提示符时bash和zsh之间差异的一个示例^

有关您的案例,请查看此链接:

或者使用以下命令更改为bash:


chsh-s/bin/sh

如果要更改Zsh的提示:

PROMPT=”⚡️%{$fg[红色]]}☣︎☯︎⚰︎☤⚚♱♚☨☥☥☨♚♱⚚☤⚰︎☯︎☣︎ %{$fg[红色]]}⚡%{$fg[绿色]]}%T⚡️%{$fg[绿色]]]}%{$fg[黄色]]}%d%{$fg[黄色]]}⚡️“

^这只是设置提示符时bash和zsh之间差异的一个示例^

有关您的案例,请查看此链接:

或者使用以下命令更改为bash:


chsh-s/bin/sh

如果您使用的是
zsh
,修改
bash
提示符不会有任何作用。您可以尝试将默认登录shell更改为bash。然后它将启动working@Amarmath:如果您不打算使用bash,为什么要摆弄bash配置?我会将您的定义移植到zsh.Whi在zsh中,做您想做的事情的规范方法可以变得更简单(例如
$(parse_pwd)
最好在zsh中写成
$pwd:t
),乍一看,我认为您的函数也可以在zsh中工作。只需将定义放入
.zshrc
。再次检查两个SO答案中的第一个,并注意回勾
`
和单个引号
'
@Amarnath之间的差异。我可以看到问题已经结束。无论如何,这个平台的目的是为了通过互相帮助来学习。因此,这很好。如果您使用的是
zsh
,修改
bash
提示符不会有任何作用。您可以尝试将默认登录shell更改为bash。然后它将启动working@Amarmath:如果您不打算使用bash,为什么要摆弄bash配置?我会将您的定义移植到zsh、 在zsh中,您可以更容易地使用规范的方法来做您想做的事情(例如
$(parse_pwd)
最好在zsh中写成
$pwd:t
),乍一看,我认为您的函数也可以在zsh中工作。只需将定义放入
.zshrc
。再次检查两个SO答案中的第一个,并注意回勾
`
和单个引号
'
@Amarnath之间的差异。我可以看到问题已经结束。无论如何,这个平台的目的是为了通过互相帮助来学习。所以,没关系。改用bash解决了我的问题。谢谢!改用bash解决了我的问题。谢谢!