इस तथ्य का उपयोग करके दुभाषियों को लॉन्च करने के लिए एक सामान्य उपयोग है env
लॉन्च करने के लिए बताई गई कमांड के लिए $ PATH की खोज करेंगे। के बाद से शेबंग लाइन निर्दिष्ट करने के लिए एक निरपेक्ष पथ की आवश्यकता है, और विभिन्न दुभाषियों के स्थान के बाद से ( perl
, bash
, python
) भिन्न हो सकते हैं बहुत , यह उपयोग करने के लिए आम है:
#!/usr/bin/env perl
इसके बजाय यह अनुमान लगाने की कोशिश कर रहा है कि क्या यह है /bin/perl
, /usr/bin/perl
, /usr/local/bin/perl
, /usr/local/pkg/perl
, /fileserver/usr/bin/perl
, या /home/MrDaniel/usr/bin/perl
उपयोगकर्ता की प्रणाली पर ...
दूसरी ओर, env
लगभग हमेशा अंदर है /usr/bin/env
। (जब यह नहीं है तो मामलों को छोड़कर; कुछ सिस्टम उपयोग कर सकते हैं /bin/env
, लेकिन यह काफी दुर्लभ घटना है और केवल गैर-लिनक्स सिस्टम पर होता है।)
एक अन्य उपयोग पर्यावरण को जल्दी से साफ करने के लिए है -i
विकल्प। विरासत में sysvinit initscripts, जो कि केवल शेल स्क्रिप्ट हैं जो अक्सर सीधे sysadmin द्वारा लॉन्च की जाती हैं, यह सुनिश्चित करना आवश्यक है कि व्यवस्थापक का वातावरण शुरू किए गए डेमॉन के लिए प्रचार नहीं करता है। (उदाहरण के लिए, एक बदमाश $TZ
या $HOME
चीजों को वास्तव में भ्रमित कर सकता है - विशेष रूप से कुछ के साथ क्रॉन डेमॉन।)
इस मामले में, इनस्क्रिप्ट एक छोटा वातावरण तैयार करता है और कुछ का उपयोग करके डेमॉन शुरू करता है:
env -i "PATH=/bin:/usr/bin" "LANG=$system_locale" /usr/sbin/crond