如何解决在 Windows 上为 Git Bash 设置 .bashrc 时,为什么 PS1 中的函数显示函数名称而不是评估? 编辑:编辑 2:
以下是我当前在位于主目录中的 .bashrc 文件中的内容。
parse_git_branch() {
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/';
}
PS1='\n' # New line
PS1=$PS1'\[\033[01;32m\]\u' # Username
PS1=$PS1' \[\033[00m\]at \[\033[01;35m\]\h' # at Hostname
PS1=$PS1' \[\033[00m\]in \[\033[01;36m\]\W' # in Directory
PS1=$PS1'\[\033[01;33m\]\$(parse_git_branch)' # Git branch
PS1=$PS1'\[\033[00m\]\n\$ ' # New line and prompt
export PS1
这个 bash 提示应该是
user at host in ~ (main)
$
在我的主目录中 git 存储库的主分支上时。相反,bash 提示是
user at host in ~$(parse_git_branch)
$
有人知道为什么会发生这种情况吗?
编辑:
将调用函数的行更改为使用双引号并删除调用前的斜杠时,如下所示,
PS1=$PS1"\[\033[01;33m\]$(parse_git_branch)"
git 分支在第一次打开 bash 时正确显示但没有更新。如果我将调用函数的行更改为仍然使用双引号但包含斜杠或使用单引号而不使用斜杠,如下所示,
PS1=$PS1"\[\033[01;33m\]\$(parse_git_branch)"
PS1=$PS1'\[\033[01;33m\]$(parse_git_branch)'
我在打开 bash 时出现以下错误,
$ bash
bash: command substitution: line 1: Syntax error near unexpected token `)'
bash: command substitution: line 1: `parse_git_branch)'
编辑 2:
来解决PS1=$PS1'\[\033[01;31m\]`parse_git_branch`'
如图所示here。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。