update ozh zsh exit-code

ozh - Personalizar el indicador de zsh cuando se muestra el código de salida del comando anterior



zsh themes linux (2)

Zsh incluye la capacidad de mostrar el código de retorno / código de salida del comando anterior en el prompt usando el %? secuencia de escape.

Sin embargo, me gustaría tener el siguiente mensaje:

user@host ~ [%?] %

cuando el código de salida es diferente de 0 y:

user@host ~ %

cuando el código de salida es 0.

Si utilizo %? solo, siempre se muestra, incluso si %? es 0. Además, quiero los corchetes, pero solo cuando el código de salida no sea 0.

¿Cuál es la forma más simple de hacer esto?


Agregue esto en la posición de PS1 en la que desea que aparezca el código de salida:

%(?..[%?] )

Es una expresión condicional. La parte entre los dos puntos (nada en este caso) se muestra si la expresión anterior al primer punto es verdadera. La parte después del segundo punto sale si es falsa.

Por ejemplo:

PS1=''%n%m %~ %(?..[%?] )%# ''


Alternativamente, puedes:

setopt PRINT_EXIT_VALUE

para imprimir siempre una nueva línea que muestre el valor de retorno anterior.

No lo prefiero para uso ordinario, pero a menudo es bueno para depurar scripts de shell.