Antworten:
Sie können Ihrem Skript anscheinend ein Präfix voranstellen, mit env -idem die Umgebung vor dem Ausführen des Skripts gelöscht wird:
env -i sh test.sh
Von man env:
-i, --ignore-environment
start with an empty environment
Ich bin mir nicht sicher, warum du das tun möchtest ...
chsh .... Wenn ich nur ein Terminalfenster öffne und ausführe zshoder fish(mit oder ohne -lBelang), verschmutzt sie meine Umgebung mit allen Arten von Variablen aus der Shell begann ich es zu tun , den Trick mit. env -clöst dieses Problem für mich , ich tue. env -i TERM=xterm-256color $(which fish).
Eine Möglichkeit (obwohl es ziemlich hässlich aussieht):
exec -c $SCRIPTstartet $ SCRIPT mit einer leeren Umgebung. (siehe man bashSuche nach exec \[-cl\]).
Soweit ich weiß, lautet die Antwort "Nein". Sie können Umgebungsvariablen innerhalb des Skripts selbst überschreiben. Der Wert der Umgebungsvariablen sollte auf den ursprünglichen Wert zurückgesetzt werden, sobald das Skript ausgeführt wurde. Sie müssen das Skript wahrscheinlich als untergeordneten Prozess ausführen: $ this.script.sh & um zu vermeiden, dass Sie sich jedes Mal von Ihrer Shell abmelden müssen, wenn Sie das Skript ausführen, um die Umgebungsvariablen auf ihren ursprünglichen Wert zurückzusetzen.
Bearbeiten:
Aus einem früheren Poster geht hervor, dass ich mich irre, dass dies nicht möglich ist.