我一直试图在我的 bash 提示符下获取 Git 状态,但没有任何成功。颜色变量有效,所以不是它们。这是我的 PS1 和解析函数。
PS1="${GREEN}ganymede@${BLUE}dawson:${ICYAN}\W${RESET}${IYELLOW} $(parse_git_branch) $ "
parse_git_branch() {
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
}
Run Code Online (Sandbox Code Playgroud)
我的 PS1 缺少什么?
谢谢道森
线路:
PS1="$anything"
Run Code Online (Sandbox Code Playgroud)
或者:
PS1="$(command)"
Run Code Online (Sandbox Code Playgroud)
这样写的手段:评价$anything现在或运行command现在,即在当时你设置的变量PS1。让我们假设$anythingorcommand打印hello. 最终结果是:
PS1=hello
Run Code Online (Sandbox Code Playgroud)
之后你会得到的提示是常量 string hello。
PS1除其他外,您希望包含 string $(parse_git_branch)。这意味着您必须引用美元符号,例如:
PS1=\$\(parse_git_branch\)
Run Code Online (Sandbox Code Playgroud)
或者:
PS1="\$(parse_git_branch)"
Run Code Online (Sandbox Code Playgroud)
或者:
PS1='$(parse_git_branch)'
Run Code Online (Sandbox Code Playgroud)
如果您愿意让所有 $var扩展都在以后进行,单引号方法既简单又有效。如果您希望现在进行一些扩展,请考虑,例如:
PS1="${GREEN}ganymede@${BLUE}dawson:${ICYAN}\W${RESET}${IYELLOW} \$(parse_git_branch) $ "
Run Code Online (Sandbox Code Playgroud)
或者:
PS1="${GREEN}ganymede@${BLUE}dawson:${ICYAN}\W${RESET}${IYELLOW} "'$(parse_git_branch) $ '
Run Code Online (Sandbox Code Playgroud)
请注意,其中一些未引用的内容是“安全的”,因为在扩展期间保持不变。SPACE$SPACE$SPACE
| 归档时间: |
|
| 查看次数: |
65 次 |
| 最近记录: |