я мой ЗШ проворный сконфигурирован для отображения другой строки в зависимости от того, был ли статус выхода последней команды ноля или ноля, скак получить имя сигнала в приглашении
# Pimp my prompt.
PS1="%{${ESC}[38;5;204m%}%n%{$reset%}" # Username
PS1="[email protected]%{${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 < => статус выхода от 129 до 160):
$ 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
Примечание: я должен был изменить свой конфиг включить 'setopt promptsubst' так PS1 претерпит подстановку команд. – Jens
FWIW, код не имеет знака '$' в условии if: 'if [[$ VALUE ...' – Francisco
@Francisco Код работает как отправлено, хотя - '$' не представляется необходимым. Это можно проверить, поместив слово в оператор echo в эту условную ветвь, которая будет выводиться только после состояния выхода 0. Я не знаю, почему '' 'не требуется. – simont