Bash Mac OS Catalina:PS1在我更改分支或目录时未更新
我试图在bash_配置文件中将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分支名称
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
才能在终端中查看这些更改
我在谷歌上搜索并尝试了一些建议,比如
$ 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解决了我的问题。谢谢!