【发布时间】:2016-08-06 21:48:17
【问题描述】:
我正在使用以下(简化的)函数在 .bashrc 中设置我的 bash 提示符:
set_prompts() {
PS1="\u@\h in \w "
PS1+="\$(get_git_repo_details)"
PS1+="\n"
PS1+="\$(exit_status_prompt)"
}
现在exit_status_prompt 打印不同颜色的提示字符,这取决于$? 的值是否为0。
我注意到,使用上面的代码,提示字符的颜色永远不会更新。但是,如果我在附加get_git_repo_details 的输出之前将exit_status_prompt 的输出附加到$PS1,或者根本不附加get_git_repo_details 的输出,那么它确实会更新。
有人知道这是什么原因吗?谢谢。
编辑:
exit_status_prompt()
{
if [ $? -ne 0 ]
then
highlight 1 "❯ "
else
highlight 2 "❯ "
fi
}
然后highlight 函数只使用tput 在第二个参数中的字符串前面加上第一个参数中指定的颜色。
【问题讨论】:
标签: bash