
Ich habe den Befehl versehentlich export
in meinen Konsolenemulator (mit Bash) statt in eingegeben export -p
, und jetzt sind alle bash_completion-Skripte dauerhaft in meiner Umgebung und überleben sogar den Neustart. Ich würde das gerne rückgängig machen, habe es aber nach einigen Stunden nicht herausgefunden. Ich bin so weit gekommen, sie in /etc/bash.bashrc zu finden, sehe aber nicht, was die Quelle dafür ist, und kann auf jeden Fall immer noch nicht herausfinden, wie oder warum export
ohne Argumente ein solcher Schaden entstehen kann.
Dies ist unter Knoppix möglich, im Nicht-Root- knoppix
Konto. Mit su -
dem Root-Konto gibt es dieses Problem nicht.
[Update: Ich weiß nicht, wovon ich rede. Mit „Umgebung“ meinte ich die Ausgabe des set
integrierten Bash-Elements, in dem die Funktionen angezeigt wurden. Ich sollte verwenden env
. Jedenfalls war Folgendes passiert: Ich habe set
in meinen Makefiles verwendet, um die Generierung bestimmter Werte zu testen, und war überrascht, plötzlich all diese Funktionen in der Ausgabe zu sehen. Nach dem Neustart habe ich dann von der Befehlszeile aus nachgesehen und sie immer noch gesehen, ohne daran zu denken, vom Makefile aus nachzusehen (aus dem sie nicht mehr angezeigt werden, da sie nicht exportiert werden. Problem also gelöst; sie waren offensichtlich die set
ganze Zeit in meiner Ausgabe, ich hatte sie nur vorher nicht bemerkt, bis ich export
sie versehentlich eingegeben und in meiner make set
Ausgabe gesehen habe. Trotzdem scheint es eine Diskrepanz zwischen der Dokumentation von Bash und dem Verhalten zu geben; export
ohne Namen soll eine Liste der exportierten Variablen zurückgegeben werden, nicht alles exportiert werden.)]
Antwort1
Sie können alle Ihre Variablen mit auflisten env
und verwenden unset $VARIABLE
, um alle unnötigen Variablen aus Ihrer Umgebung zu entfernen und so Ihr Problem zu beheben. Sie müssen darauf achten, die richtigen Variablen zu löschen, denn wenn Sie beispielsweise Ihren PATH löschen, können Sie keine Befehle/Anwendungen ausführen.
Dies erklärt zwar nicht, was mit Ihren Bash_Completion-Skripten schiefgelaufen ist, würde aber den versehentlichen Fehler rückgängig machen export
.