Добавление в приглашение zsh кода ошибки программ и расшифровки сигнал


ramok аватар

ramok - Posted on 18 Январь 2006

Если программа завершается с ненулевым кодом ошибки то его можно отображать в prompt что бы если что по документации можно выяснить что означает это возвращаемое значение.
Если программа прервана сигналом то zsh возвращает код возврата 128 + номер сигнала(в bash тоже).

Зная это + немножно знания zsh можно добавить в свое приглашение удобную фичу Ж:-)

Подсмотрено в стандартных prompt идущих с zsh

Заносим в precmd() где нибуть в вашем ~/.zshrc

precmd ()
{   
    local exitstatus=$?
    setopt noxtrace localoptions
 
    [[ $exitstatus -ge 128 ]] && psvar[1]=" $signals[$exitstatus-127]" ||
        psvar[1]=""       
}

после чего

setopt PROMPT_SUBST
p_rc="%(?..[%?%1v])"

И вставляем $p_rc в свой любимый prompt.
Например сделаем так что бы отображалось права в командной строке

$ export RPROMPT=$p_rc

Проверяем как работает

$ true
$

Программа завершилась успешно - ничего не отображается

$ false
$                                         [1]

Программа завершилась с ненулевым кодом ошибки, он отображается

$ cat
^C
$                                   [130 INT]

Программа была прервана, INT - то каким сигналом это было сделано

Цвета и прочее добавляем по собственному вкусу.

2
Ваша оценка: Ничего Рейтинг: 2 (1 vote)