उपयोगिता कार्यक्रम का एक उदाहरण क्या है जिसे एनवी कमांड कह सकता है?


3

पर एक नज़र लेने के बाद env कमांड मैन पेज मैं एक उपयोगिता कार्यक्रम का एक उदाहरण देखने के लिए उत्सुक था जिसका उपयोग नीचे दिए गए उपयोग में किया जाएगा?

SYNOPSIS

env [-i] [नाम = मूल्य ...] [उपयोगिता [तर्क ...]]

विवरण

env कमांड लाइन पर निर्दिष्ट पर्यावरण को संशोधित करने के बाद उपयोगिता निष्पादित करता है। विकल्प        नाम = मान एक पर्यावरणीय चर, नाम को निर्दिष्ट करता है, जिसका मान मूल्य है। विकल्प `-i’ का कारण बनता है        वातावरण को पूरी तरह से नजरअंदाज करना जो उसे विरासत में मिला है।

जवाबों:


5

इस तथ्य का उपयोग करके दुभाषियों को लॉन्च करने के लिए एक सामान्य उपयोग है 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

1

यह वास्तव में कोई भी कार्यक्रम है। यह उन सभी के लिए सबसे उपयोगी है जो पर्यावरण चर के रूप में परिभाषित किसी भी मूल्य का उपयोग करते हैं। आप अपने शेल में वास्तव में इसे सेट किए बिना किसी भी प्रोग्राम के लिए एक पर्यावरण चर मान पारित कर सकते हैं (और इस तरह लाइन के नीचे अन्य कार्यक्रमों को प्रभावित कर रहे हैं)।

env ls रन ls पर्यावरण को संशोधित किए बिना। env -i ls पर्यावरण को रीसेट करता है। मेरे सिस्टम पर, यह अपने आउटपुट से रंगों को हटाता है, क्योंकि यह अनसेट करता है LSCOLORS तथा CLICOLORenv LSCOLORS=GxfxcxhxdxegdggbgdAhAg ls दौड़ेगा lsनिर्दिष्ट किया जा रहा है LSCOLORS स्ट्रिंग और संभवतः कैसे बदल रहा है ls आउटपुट रंगीन है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.