ZSH:提示扩展return代码大于
ZSH: prompt expansion return code greater than
这个问题(理论上)很简单。我想要的只是让我的 zsh 提示打印 return 代码(如果它小于或等于 128)以及相应的信号(当它大于 128 时)。我找不到任何这样做的例子和 zsh docs 只指定怎么做
if the exit status of the last command was n
我唯一(有点)工作的版本如下(仅适用于 SIGINT
):
PROMPT='%130(?.[$(kill -l $?)].$?)> '
我也尝试过使用 precmd
但完全失败了(当 zsh 执行函数时 return 代码似乎受到干扰但不要引用我的话)。
解决方案确实很简单,只需要创建一个不同的函数(我将 return 代码传递给它)而不是使用 precmd
。下面是我的 zsh 提示符的最终版本,包括 return 代码/信号行为:
code () {
if (( > 128 )); then
echo "SIG$(kill -l )"
else
echo
fi
}
setopt promptsubst
PROMPT='%F{green}%n%f@%m %F{cyan}%~%f> '
RPROMPT='%(?..%F{red}[$(code $?)]%f'
这个问题(理论上)很简单。我想要的只是让我的 zsh 提示打印 return 代码(如果它小于或等于 128)以及相应的信号(当它大于 128 时)。我找不到任何这样做的例子和 zsh docs 只指定怎么做
if the exit status of the last command was n
我唯一(有点)工作的版本如下(仅适用于 SIGINT
):
PROMPT='%130(?.[$(kill -l $?)].$?)> '
我也尝试过使用 precmd
但完全失败了(当 zsh 执行函数时 return 代码似乎受到干扰但不要引用我的话)。
解决方案确实很简单,只需要创建一个不同的函数(我将 return 代码传递给它)而不是使用 precmd
。下面是我的 zsh 提示符的最终版本,包括 return 代码/信号行为:
code () {
if (( > 128 )); then
echo "SIG$(kill -l )"
else
echo
fi
}
setopt promptsubst
PROMPT='%F{green}%n%f@%m %F{cyan}%~%f> '
RPROMPT='%(?..%F{red}[$(code $?)]%f'