我正在尝试根据上一个命令的返回码为我的提示着色。我有以下内容:
PROMPT='%{$fg_bold[cyan]%}%~$(git_prompt_info) %($?.%{fg_bold[cyan]%}.%{$fg_bold[red]%})»%{$reset_color%} '
具体来说,我遇到了%($?.%{fg_bold[cyan]%}.%{$fg_bold[red]%})
部分的问题。
不幸的是,我的提示最终看起来像这样:
我做错了什么?
修改
在解决我的错字之后我现在有:
PROMPT='%{$fg_bold[cyan]%}%~$(git_prompt_info) %($?.%{$fg_bold[cyan]%}.%{$fg_bold[red]%})»%{$reset_color%} '
我的提示现在看起来像这样:
答案 0 :(得分:1)
您忘记了参数展开的$
,并且不在?
之前加上一美元;它是条件的标志,而不是参数引用。
%(?.%{$fg_bold[cyan]%}.%{$fg_bold[red]%})
^ ^
答案 1 :(得分:0)
另一种方法是将返回代码(不同于0时)发送到kill -l
,以便显示错误代码的名称。
这是我使用的(对于右侧的提示)
setopt PROMPT_SUBST
RPS1='%(?..%{$fg_bold[red]%}[%? $(kill -l $?)]%{${reset_color}%} )%T' # time