我正在使用以下(简化)函数在.bashrc中设置我的bash提示符:
set_prompts() {
PS1="\u@\h in \w "
PS1+="\$(get_git_repo_details)"
PS1+="\n"
PS1+="\$(exit_status_prompt)"
}
现在exit_status_prompt
会打印一个不同颜色的提示字符,具体取决于$?
的值是否为0。
我注意到的是,使用上面的代码,提示字符的颜色永远不会更新。但是,如果我在添加exit_status_prompt
的输出之前将$PS1
的输出附加到get_git_repo_details
,或者根本不附加get_git_repo_details
的输出,那么它会更新。
有谁知道造成这种情况的原因是什么?感谢。
编辑:
exit_status_prompt()
{
if [ $? -ne 0 ]
then
highlight 1 "❯ "
else
highlight 2 "❯ "
fi
}
然后highlight
函数只使用tput
在第二个参数中添加字符串,并在第一个参数中指定颜色。
答案 0 :(得分:2)
在<input type="text" id="zipurl" placeholder="http://">
<button class="loadzipurl">Export Application</button>
中执行任何其他操作之前,您需要致电exit_status_prompt
,否则set_prompts
将被重置。据推测,$?
使用最近执行的命令或分配的退出状态。
exit_status_prompt
我没有使用命令替换,因为我假设您(并且应该)正在运行set_prompts() {
esp=$(exit_status_prompt)
PS1="\u@\h in \w "
PS1+="$(get_git_repo_details)"
PS1+="\n"
PS1+="$esp"
}
作为set_prompts
中的第一个命令。