Risposte:
Sembra che puoi aggiungere il prefisso allo script con il env -i
quale cancellerà l'ambiente prima di eseguire lo script:
env -i sh test.sh
Da man env
:
-i, --ignore-environment
start with an empty environment
Non sono sicuro del motivo per cui vorresti farlo, però ...
chsh ...
. Se apro una finestra terminale ed eseguo zsh
o fish
(con o senza -l
, non importa) inquina il mio ambiente con tutti i tipi di variabili dal shell Ho iniziato. Fare il trucco env -c
risolve questo problema per me env -i TERM=xterm-256color $(which fish)
.
Una possibilità (anche se sembra piuttosto brutta):
exec -c $SCRIPT
inizierà $ SCRIPT con un ambiente vuoto. (vedi man bash
ricerca per exec \[-cl\]
).
Per quanto ne so, la risposta è "No". È possibile ignorare le variabili ambientali all'interno dello script stesso. Il valore della variabile d'ambiente dovrebbe tornare al suo valore originale una volta eseguita l'esecuzione dello script. Probabilmente dovrai eseguire lo script come un processo figlio: $ this.script.sh e così da evitare di dover uscire dalla shell ogni volta che esegui lo script per ripristinare le variabili di ambiente al loro valore originale.
Modificare:
Da un poster precedente, sembrerebbe che mi sbagli sul fatto che non sia possibile.