Comment supprimer / supprimer une fonction shell?

180

Je l'ai fait:

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

Comment m'en débarrasser?

trop de php
la source

Réponses:

271
unset -f z

Annulera la fonction nommée z. Quelques personnes ont répondu avec:

unset z

mais si vous avez une fonction et une variable nommée z, seule la variable sera annulée, pas la fonction.

Robert Gamble
la source
Notez que cela s'applique à POSIX coquilles, non seulement Bash.
Franklin Yu
2

Dans Zsh:

unfunction z

C'est un autre nom (sans doute meilleur) pour unhash -f zou unset -f zet est cohérent avec le reste de la famille de:

  • unset
  • unhash
  • unalias
  • unlimit
  • unsetopt

En cas de doute sur de telles choses, tapez un<tab>pour voir la liste complète.

(Légèrement lié: Il est aussi agréable d'avoir des fonctions / alias comme realiases, refunctions, resetopts, reenv, etc à « transmettre les source» fichiers respectifs, si vous avez séparé / les avons regroupés en tant que tel.)

Micah Elliott
la source