Odpowiedzi:
Wygląda na to, że możesz przedrostek skryptu env -iwyczyścić środowisko przed uruchomieniem skryptu:
env -i sh test.sh
Od man env:
-i, --ignore-environment
start with an empty environment
Nie jestem pewien, dlaczego chcesz to zrobić ...
chsh .... Jeśli po prostu otworzę okno terminala i uruchomię zshlub fish(z lub bez -lto nie ma znaczenia) zanieczyści moje środowisko wszelkiego rodzaju zmiennymi z powłoki zaczęłam go Doing sprawę z. env -crozwiązuje ten problem dla mnie zrobić. env -i TERM=xterm-256color $(which fish).
O ile mi wiadomo, odpowiedź brzmi „nie”. Możesz zastąpić zmienne środowiskowe w samym skrypcie. Wartość zmiennej środowiskowej powinna powrócić do pierwotnej wartości po zakończeniu działania skryptu. Prawdopodobnie musisz uruchomić skrypt jako proces potomny: $ this.script.sh i tak, aby uniknąć konieczności wylogowywania się z powłoki za każdym razem, gdy uruchamiasz skrypt, aby zresetować zmienne środowiskowe do ich pierwotnej wartości.
Edytować:
Z wcześniejszego plakatu wydaje się, że się mylę, że nie jest to możliwe.