我的zsh提示符配置为显示不同的提示,具体取决于最后一个命令的退出状态是零还是非零,
# Pimp my prompt.
PS1="%{${ESC}[38;5;204m%}%n%{$reset%}" # Username
PS1="$PS1@%{${ESC}[38;5;104m%m$reset%}" # @Machine
PS1="$PS1:%{${ESC}[38;5;78m%}%~%{$reset%}" # :Directory
PS1="$PS1$NL%(0?,,%{${ESC}[38;5;0m${ESC}[48;5;162m%}%?%{$reset%} )" # Status
PS1="$PS1%(#.#.$) " # Prompt
现在我想知道如果退出状态是>我是否可以使提示包含信号名称。 128,即129包含HUP
130 INT
等。我的系统上的信号列表是(增加信号编号从1到32&lt; =&gt;退出状态129到160):< / p>
$ kill -l
HUP INT QUIT ILL TRAP ABRT EMT FPE KILL BUS SEGV SYS PIPE ALRM TERM URG STOP TSTP CONT CHLD TTIN TTOU IO XCPU XFSZ VTALRM PROF WINCH INFO USR1 USR2 THR
答案 0 :(得分:2)
这应该这样做,虽然您需要稍微为您的提示自定义它。
get_exit_code() {
# Grab the last exit status.
VALUE=$?
if [[ VALUE -eq 0 ]]; then
# Don't display anything if we got a clean exit code.
echo ""
else
# Get the name of the exit code, then return.
NAME=`kill -l ${VALUE}`
echo "${NAME}"
fi
}
# Use the function in our prompt.
export PROMPT=$'$ $(get_exit_code) '
以下是我系统的示例输出:
$
$ return 3
$ QUIT return 129
$ HUP return 2
$ INT