Настройка приглашения zsh при отображении предыдущего кода выхода команды
Zsh включает в себя возможность отображения кода возврата/выхода предыдущей команды в командной строке с помощью %?
escape-последовательности.
однако я хотел бы иметь следующее приглашение:
user@host ~ [%?] %
когда код выхода отличается от 0 и:
user@host ~ %
когда код выхода 0.
если я использую Он всегда отображается, даже если %?
равен 0.
Кроме того, я хочу квадратные скобки, но только когда код выхода не 0.
какой самый простой способ сделать это?
2 ответов
добавьте это в положение в PS1
где вы хотите, чтобы код выхода появляются:
%(?..[%?] )
- это условное выражение. Часть между двумя точками (в данном случае ничего) выводится, если выражение перед первой точкой имеет значение true. Часть после второй точки выводится, если она false.
например:
PS1='%n%m %~ %(?..[%?] )%# '
кроме того, вы можете:
setopt PRINT_EXIT_VALUE
чтобы всегда печатать новую строку с предыдущим возвращаемым значением.
Я не предпочитаю это для обычного использования, но это часто хорошо для отладки скриптов.