Yanıtlar:
Komut dosyasını env -i
çalıştırmadan önce ortamı temizleyecek komut dosyanızın önüne ön ek ekleyebilirsiniz :
env -i sh test.sh
Gönderen man env
:
-i, --ignore-environment
start with an empty environment
Bunu neden yapmak isteyeceğinizden emin değilim ...
chsh ...
. Eğer sadece bir terminal penceresi açar ve çalıştırırsam zsh
veya fish
(önemli olan veya olmayan -l
), ortamımı her türlü değişkenle kirletir kabuk ben başlattım ile hile yapmak. env -c
Benim için çözer bu sorunu ben biliyorum. env -i TERM=xterm-256color $(which fish)
.
Bir olasılık (oldukça çirkin görünse de):
exec -c $SCRIPT
$ SCRIPT boş bir ortamla başlayacaktır. ( man bash
aramaya bakın exec \[-cl\]
).
Bildiğim kadarıyla cevap "Hayır". Betiğin içindeki çevresel değişkenleri geçersiz kılabilirsiniz. Ortam değişkeninin değeri, komut dosyası çalıştıktan sonra orijinal değerine geri dönmelidir. Büyük olasılıkla betiği bir alt işlem olarak çalıştırmanız gerekir: $ this.script.sh & böylece ortam değişkenlerinizi orijinal değerlerine sıfırlamak için betiğinizi çalıştırdığınızda tek seferde kabuğunuzdan çıkış yapmak zorunda kalmazsınız.
Düzenle:
Daha önceki bir posterden, bunun mümkün olmadığı konusunda yanıldığım anlaşılıyor.