Jak wiem, nowo uruchomiony skrypt powłoki dziedziczy zmienne środowiskowe. Czy istnieje sposób, aby to zablokować? (uruchomiona powłoka bez dziedziczenia zmiennej)
shell
environment-variables
Eonil
źródło
źródło
chsh ...
. Jeśli po prostu otworzę okno terminala i uruchomięzsh
lubfish
(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)
.Jedna możliwość (choć wygląda raczej brzydko):
exec -c $SCRIPT
uruchomi $ SCRIPT z pustym środowiskiem. (patrzman bash
wyszukiwanieexec \[-cl\]
).źródło
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.
źródło