Respostas:
Parece que você pode prefixar seu script com o env -iqual limpará o ambiente antes de executar o script:
env -i sh test.sh
De man env:
-i, --ignore-environment
start with an empty environment
Não sei por que você gostaria de fazer isso ...
chsh .... Se eu abrir uma janela de terminal e executar zshou fish(com ou sem -l, não importa), poluirá meu ambiente com todos os tipos de variáveis do shell Eu comecei fazendo o truque com. env -cresolve este problema para mim que eu faço. env -i TERM=xterm-256color $(which fish).
Uma possibilidade (embora pareça bastante feia):
exec -c $SCRIPTiniciará $ SCRIPT com um ambiente vazio. (consulte a man bashpesquisa exec \[-cl\]).
Tanto quanto eu sei, a resposta é "Não". Você pode substituir variáveis ambientais no próprio script. O valor da variável de ambiente deve voltar ao valor original assim que o script terminar de ser executado. Você provavelmente precisará executar o script como um processo filho: $ this.script.sh e para evitar ter que sair do shell sempre que executar o script para redefinir as variáveis de ambiente para o valor original.
Editar:
De um pôster anterior, parece que estou errado sobre isso não ser possível.