Seperti yang saya tahu, skrip shell yang baru berjalan mewarisi variabel lingkungan itu. Apakah ada cara untuk memblokir ini? (menjalankan shell tanpa pewarisan variabel)
shell
environment-variables
Eonil
sumber
sumber
chsh ...
. Jika saya hanya membuka jendela terminal dan menjalankanzsh
ataufish
(dengan atau tanpa-l
tidak masalah) itu mencemari lingkungan saya dengan semua jenis variabel dari shell saya memulainya Melakukan trik denganenv -c
memecahkan masalah ini untuk sayaenv -i TERM=xterm-256color $(which fish)
..Satu kemungkinan (meskipun terlihat agak jelek):
exec -c $SCRIPT
akan mulai $ SCRIPT dengan lingkungan kosong. (lihatman bash
pencarianexec \[-cl\]
).sumber
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.
sumber