ZSH:提示扩展返回码大于
Posted
技术标签:
【中文标题】ZSH:提示扩展返回码大于【英文标题】:ZSH: prompt expansion return code greater than 【发布时间】:2020-08-19 14:34:10 【问题描述】:这个问题(理论上)很简单。我想要的只是让我的 zsh 提示打印返回码(如果它小于或等于 128)以及大于 128 时的相应信号。我找不到任何这样做的例子,zsh docs 只指定如何做它
如果最后一个命令的退出状态是 n
我得到(有点)工作的唯一版本是以下(仅适用于SIGINT
):
PROMPT='%130(?.[$(kill -l $?)].$?)> '
我也尝试过使用precmd
,但完全失败了(似乎返回码在 zsh 执行函数时受到干扰,但不要引用我的话)。
【问题讨论】:
【参考方案1】:解决方案确实很简单,只需创建一个不同的函数(我将返回代码传递给该函数),而不是使用precmd
。下面是我的 zsh 提示的最终版本,包括返回码/信号行为:
code ()
if (( $1 > 128 )); then
echo "SIG$(kill -l $1)"
else
echo $1
fi
setopt promptsubst
PROMPT='%Fgreen%n%f@%m %Fcyan%~%f> '
RPROMPT='%(?..%Fred[$(code $?)]%f'
【讨论】:
以上是关于ZSH:提示扩展返回码大于的主要内容,如果未能解决你的问题,请参考以下文章
华为联机对战下载运行华为官方Unity示例代码,提示鉴权失败并返回错误码100114