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?

muito php
fonte

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.

Robert Gamble
fonte
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.)

Micah Elliott
fonte