Warum befinden sich Bash_Completion-Skripte dauerhaft in der Umgebung?

Warum befinden sich Bash_Completion-Skripte dauerhaft in der Umgebung?

Ich habe den Befehl versehentlich exportin 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 exportohne Argumente ein solcher Schaden entstehen kann.

Dies ist unter Knoppix möglich, im Nicht-Root- knoppixKonto. Mit su -dem Root-Konto gibt es dieses Problem nicht.

[Update: Ich weiß nicht, wovon ich rede. Mit „Umgebung“ meinte ich die Ausgabe des setintegrierten Bash-Elements, in dem die Funktionen angezeigt wurden. Ich sollte verwenden env. Jedenfalls war Folgendes passiert: Ich habe setin 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 setganze Zeit in meiner Ausgabe, ich hatte sie nur vorher nicht bemerkt, bis ich exportsie versehentlich eingegeben und in meiner make setAusgabe gesehen habe. Trotzdem scheint es eine Diskrepanz zwischen der Dokumentation von Bash und dem Verhalten zu geben; exportohne Namen soll eine Liste der exportierten Variablen zurückgegeben werden, nicht alles exportiert werden.)]

Antwort1

Sie können alle Ihre Variablen mit auflisten envund 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.

verwandte Informationen