Odpowiedzi:
Wygląda na to, że możesz przedrostek skryptu env -i
wyczyś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ę zsh
lub fish
(z lub bez -l
to nie ma znaczenia) zanieczyści moje środowisko wszelkiego rodzaju zmiennymi z powłoki zaczęłam go Doing sprawę z. env -c
rozwią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.