Wie ich weiß, erbt das neu ausgeführte Shell-Skript seine Umgebungsvariablen. Gibt es eine Möglichkeit, dies zu blockieren? (Shell ohne Variablenvererbung ausführen)
shell
environment-variables
Eonil
quelle
quelle
chsh ...
. Wenn ich nur ein Terminalfenster öffne und ausführezsh
oderfish
(mit oder ohne-l
Belang), verschmutzt sie meine Umgebung mit allen Arten von Variablen aus der Shell begann ich es zu tun , den Trick mit.env -c
lö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 $SCRIPT
startet $ SCRIPT mit einer leeren Umgebung. (sieheman bash
Suche nachexec \[-cl\]
).quelle
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.
quelle