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

服务器向用户返回的状态码和提示信息,常见的有以下一些(方括号中是该状态码对应的HTTP动词)

eclipse如何返回上一步代码处?

接口请求返回状态码总结

网页提示错误类型:400啥意思

服务器返回的各种HTTP状态码介绍