जवाबों:
ऐसा लगता है कि आप अपनी स्क्रिप्ट को उपसर्ग कर सकते हैं env -i
जिसके साथ स्क्रिप्ट चलाने से पहले पर्यावरण को साफ कर देंगे:
env -i sh test.sh
से man env
:
-i, --ignore-environment
start with an empty environment
यकीन नहीं होता कि आप ऐसा क्यों करना चाहेंगे ...
chsh ...
अगर मैं सिर्फ एक टर्मिनल विंडो खोलता हूं और चला जाता हूं zsh
या fish
(साथ या बिना -l
कोई फर्क नहीं पड़ता) यह मेरे वातावरण को सभी प्रकार के चर से प्रदूषित करता है शेल मैंने इसे शुरू किया। env -c
मेरे साथ इस समस्या को हल करने की कोशिश करना env -i TERM=xterm-256color $(which fish)
। मैं करता हूं ।
एक संभावना (हालांकि यह बदसूरत दिखती है):
exec -c $SCRIPT
एक खाली वातावरण के साथ $ SCRIPT शुरू करेगा। ( man bash
खोज के लिए देखें exec \[-cl\]
)।
जहाँ तक मुझे पता है, जवाब "नहीं" है। आप स्क्रिप्ट के भीतर ही पर्यावरण चर को ओवरराइड कर सकते हैं। स्क्रिप्ट चलने के बाद पर्यावरण चर का मान वापस मूल मूल्य पर आ जाना चाहिए। आपको संभवतः एक चाइल्ड प्रोसेस के रूप में स्क्रिप्ट को चलाने की आवश्यकता है: $ this.script.sh और इसलिए अपने शेल से लॉग आउट करने से बचने के लिए कभी भी स्क्रिप्ट को चलाने के लिए अपने पर्यावरण चर को उनके मूल मान पर रीसेट करने के लिए।
संपादित करें:
पहले के पोस्टर से, ऐसा लगता है कि मैं इसके बारे में गलत हूं जो संभव नहीं है।