Como faço para excluir / remover uma função de shell?


180

Eu fiz isso:

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

Como faço para me livrar dele?

Respostas:


271
unset -f z

Desativa a função denominada z. Algumas pessoas responderam com:

unset z

mas se você tiver uma função e uma variável denominada z, somente a variável será desativada, não a função.


Observe que isso se aplica a shells compatíveis com POSIX , não apenas ao Bash.
Franklin Yu

2

No Zsh:

unfunction z

Esse é outro nome (sem dúvida melhor) para unhash -f zou unset -f zé consistente com o resto da família de:

  • unset
  • unhash
  • unalias
  • unlimit
  • unsetopt

Em caso de dúvida, digite un<tab>para ver a lista completa.

(Um pouco relacionado: Também é bom ter funções / aliases como realiases, refunctions, resetopts, reenv, etc para "re source" respectivos arquivos, se você separou / agrupados los como tal.)

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.