我在 bash 中有以下提示,它显示了当前的 git 分支:
PS1+="$(git_prompt)" #git_prompt is a function in my .bashrc
Run Code Online (Sandbox Code Playgroud)
这在我获取 .bashrc 时有效,但在我更改分支时无效,因此 PS1 var 仅在我获取 .bashrc 时进行评估,但每次显示新提示时都应进行评估。这如何用 bash 4.3 完成?
Hau*_*ing 15
你的问题是,$(git_prompt)被评估为一些常量字符串之前,它被添加到$PS1。您必须改为添加代码:
PS1+='$(git_prompt)'
Run Code Online (Sandbox Code Playgroud)
dan*_*996 12
我现在通过使用它作为提示来修复它
PS1="$green\u $r@ $red\h $r: $yellow\W \!$r \$(git_prompt) \n$yellow\$ $r"
Run Code Online (Sandbox Code Playgroud)
在我将多个字符串连接到一个 PS1 字符串之前,似乎存在问题。诀窍是\在执行命令之前写一个$(git_prompt).
所以$(git_prompt)将在被评估时.bashrc被评估并且
\$(git_prompt) 将在每次显示新提示时进行评估