Jak usunąć / usunąć funkcję powłoki?

180

Ja to zrobiłem:

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

Jak się tego pozbyć?

za dużo php
źródło

Odpowiedzi:

271
unset -f z

Wyłączy funkcję o nazwie z. Kilka osób odpowiedziało:

unset z

ale jeśli masz funkcję i zmienną o nazwie z, tylko zmienna zostanie rozbrojona, a nie funkcja.

Robert Gamble
źródło
Pamiętaj, że dotyczy to powłok zgodnych z POSIX , nie tylko Bash.
Franklin Yu
2

W Zsh:

unfunction z

To kolejne (prawdopodobnie lepsze) imię unhash -f zlub unset -f zjest zgodne z resztą rodziny:

  • unset
  • unhash
  • unalias
  • unlimit
  • unsetopt

W przypadku wątpliwości dotyczących takich rzeczy wpisz, un<tab>aby zobaczyć pełną listę.

(Nieco podobne: Jest to także miło mieć funkcje / jak aliasy realiases, refunctions, resetopts, reenv, etc „ponownie source” odpowiednie pliki, jeśli już oddzielony / pogrupowane je jako takie).

Micah Elliott
źródło