Jawaban:
Tampaknya Anda dapat mengawali skrip env -iyang akan membersihkan lingkungan sebelum menjalankan skrip:
env -i sh test.sh
Dari man env:
-i, --ignore-environment
start with an empty environment
Tidak yakin mengapa Anda ingin melakukan ini ...
chsh .... Jika saya hanya membuka jendela terminal dan menjalankan zshatau fish(dengan atau tanpa -ltidak masalah) itu mencemari lingkungan saya dengan semua jenis variabel dari shell saya memulainya Melakukan trik dengan env -cmemecahkan masalah ini untuk saya env -i TERM=xterm-256color $(which fish)..
Satu kemungkinan (meskipun terlihat agak jelek):
exec -c $SCRIPTakan mulai $ SCRIPT dengan lingkungan kosong. (lihat man bashpencarian exec \[-cl\]).
Sejauh yang saya tahu, jawabannya adalah "Tidak". Anda dapat mengganti variabel lingkungan dalam skrip itu sendiri. Nilai variabel lingkungan harus beralih kembali ke nilai aslinya setelah skrip selesai berjalan. Anda mungkin perlu menjalankan skrip sebagai proses anak-anak: $ this.script.sh & untuk menghindari keharusan keluar dari shell Anda sekali saja menjalankan skrip untuk mereset variabel lingkungan Anda ke nilai aslinya.
Edit:
Dari poster sebelumnya, sepertinya saya salah tentang hal itu tidak mungkin.