Wenn Sie eine Umgebungsvariable in Bash setzen oder exportieren, können Sie sie deaktivieren . Wenn Sie in bash einen Alias festlegen , können Sie den Alias aufheben . Aber es scheint keine Fehlfunktion zu geben .
Betrachten Sie diese (triviale) Bash-Funktion, die beispielsweise in einer .bash_aliases- Datei festgelegt und bei der Shell-Initialisierung gelesen wird.
function foo () { echo "bar" ; }
Wie kann ich diese Funktionsdefinition aus meiner aktuellen Shell löschen?
(Ändern der Initialisierungsdateien oder Neustarten der Shell zählen nicht.)
linux
command-line
bash
shell
Quacksalber
quelle
quelle
unfunction
wäre ein schöner Name für einen Befehl :-)Antworten:
Der nicht festgelegte eingebaute Befehl enthält eine Option
-f
zum Löschen von Funktionen:Bilden Sie den nicht gesetzten Eintrag in der bash- Manpage:
Hinweis:
-f
ist nur dann wirklich notwendig, wenn eine Variable mit dem gleichen Namen existiert. Wenn Sie nicht auch eine Variable mit dem Namen habenfoo
,unset foo
wird die Funktion gelöscht.quelle
-f
Parameter im Export gefunden, aber nicht in unset gefunden . Vielen Dank.unset
ist kein externer Befehl, sondern Teil der Shell ( in diesem Fall bash ); versuchen Sieman bash
, den Eintrag für zu findenunset
(das verwalten ist ziemlich groß,unset
befindet sich unter demShell Builtin Commands
Abschnitt).Siehe
help unset
:Es gibt weder
unset --help
nochman unset
leider.quelle
man unset
weil es sich um eine integrierte in Befehl und für die Einbau- Befehle gibt es statthelp
. Für einige eingebaute Befehle gibt es auch eine externe ausführbare Datei. Im Zweifelsfall versuchen Sie zBtype mycommnad
. Zum Beispieltype unset
und es wird Ihnen antwortenunset is a shell builtin
. Wenn Sie wissen möchten, ob es die ausführbare Datei gibt, versuchen Sie es mitwhich echo
einem anderen Buikt-In. Das--option_long
ist typisch für den ausführbaren Befehl. Versuchen Sieecho --help
und/bin/echo --help
.:-)
.help
stattdessen verwenden müssenman
. (Nicht wirklich wahr, weil Sie sie imman bash
Kapitel SHELL BUILTIN COMMANDS oder direkt mitman BASH-BUILTINS
... finden). Es ist gemütlich, dass Sie unter einer Bash-Shell einfach danach fragen könnenhelp
und die Liste der eingebauten Befehle erhalten:-)
. (Versuchenhelp help
undman man
auch).