¿Cómo elimino / elimino una función de shell?

180

He hecho esto:

$ z() { echo 'hello world'; }

¿Como me deshago de esto?

demasiado php
fuente

Respuestas:

271
unset -f z

Desarmará la función llamada z. Un par de personas han respondido con:

unset z

pero si tiene una función y una variable llamada z, solo la variable se desarmará, no la función.

Robert Gamble
fuente
Tenga en cuenta que esto se aplica a los shells compatibles con POSIX , no solo a Bash.
Franklin Yu
2

En zsh:

unfunction z

Ese es otro nombre (posiblemente mejor) para unhash -f zo unset -f zy es consistente con el resto de la familia de:

  • unset
  • unhash
  • unalias
  • unlimit
  • unsetopt

Cuando tenga dudas con estas cosas, escriba un<tab>para ver la lista completa.

(Algo relacionado: También es bueno tener funciones / alias como realiases, refunctions, resetopts, reenv, etc para "RE- source" archivos respectivos, si se ha separado / los agrupó como tal.)

Micah Elliott
fuente