Respuestas:
Use la opción HIST_IGNORE_SPACE.
setopt HIST_IGNORE_SPACE
zshoptions hombre
HIST_IGNORE_SPACE
Elimine las líneas de comando de la lista del historial cuando el primer carácter de la línea sea un espacio o cuando uno de los alias expandidos contenga un espacio inicial. Tenga en cuenta que el comando permanece en el historial interno hasta que se ingresa el siguiente comando antes de que desaparezca, lo que le permite reutilizar o editar brevemente la línea. Si desea que desaparezca de inmediato sin ingresar otro comando, escriba un espacio y presione Intro.
kill -9 $$
De hecho, es fantástico evitar que todos los comandos emitidos en la sesión de terminal actual se almacenen en el historial.
unset HISTFILE
antes de su bloque de comandos. Tendría que restablecer HISTFILE
después o abrir un nuevo shell para mantener los comandos en su historial que desee.
Si desea un control más granular sobre lo que se agrega al historial de ZSH, puede definir la zshaddhistory
función en .zshrc
. La siguiente definición utiliza una expresión regular para definir un patrón a ignorar:
function zshaddhistory() {
emulate -L zsh
if ! [[ "$1" =~ "(^ |^ykchalresp|--password)" ]] ; then
print -sr -- "${1%%$'\n'}"
fc -p
else
return 1
fi
}
Tenga en cuenta que el comportamiento desde man zshopts
abajo HIST_IGNORE_SPACE
todavía está presente:
Tenga en cuenta que el comando permanece en el historial interno hasta que se ingresa el siguiente comando antes de que desaparezca, lo que le permite reutilizar o editar brevemente la línea.
Entonces para probarlo, tendrías que golpear un extra [Enter]
. Esto elimina el comando tanto de la salida como del history
historial de flechas ↑.