Hoe verwijder/verwijder ik een shell-functie?

Ik heb dit gedaan:

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

Hoe kom ik er vanaf?


Antwoord 1, autoriteit 100%

unset -f z

Hiermee wordt de functie met de naam z uitgeschakeld. Een paar mensen hebben geantwoord met:

unset z

maar als je een functie en een variabele met de naam z hebt, wordt alleen de variabele uitgeschakeld, niet de functie.


Antwoord 2, autoriteit 2%

In Zsh:

unfunction z

Dat is een andere (aantoonbaar betere) naam voor unhash -f zof unset -f zen komt overeen met de rest van de familie van:

  • unset
  • unhash
  • unalias
  • unlimit
  • unsetopt

Typ bij twijfel over dergelijke zaken un<tab>om de volledige lijst te zien.

(Enigszins verwant: het is ook fijn om functies/aliassen te hebben zoals realiases, refunctions, resetopts, reenv, enz. om de respectieve bestanden te “her-source“, als u ze als zodanig hebt gescheiden/gegroepeerd.)

Other episodes