बैश मैनुअल कहते हैं (मैनपेज, मेरा जोर):
जब बैश एक बाहरी कमांड को आमंत्रित करता है, तो चर कमांड
$_के पूर्ण पथनाम पर सेट हो जाता है और अपने वातावरण में उस कमांड पर जाता है।
और ( विशेष पैरामीटर ):
_(
$_, एक अंडरस्कोर।) शेल स्टार्टअप पर, शेल या शेल स्क्रिप्ट को लागू करने के लिए उपयोग किए जाने वाले पूर्ण पथनाम पर सेट किया जाता है, जिसे पर्यावरण या तर्क सूची में पारित किया जाता है। इसके बाद, विस्तार के बाद पिछले तर्क के अंतिम तर्क तक फैलता है। साथ ही निष्पादित किए गए प्रत्येक कमांड को लागू करने के लिए उपयोग किए गए पूर्ण पथनाम पर सेट है और उस कमांड को निर्यात किए गए वातावरण में रखा गया है। मेल की जाँच करते समय, यह पैरामीटर मेल फ़ाइल का नाम रखता है।
बैश शेल में, मैं दौड़ता हूं:
$ bash $ export | grep '_='मैनुअल के अनुसार,
_नए बैश शेल का एक पर्यावरण चर होना चाहिए।exportनए बैश शेल के सभी पर्यावरण चर का उत्पादन करने वाला है, लेकिन यह आउटपुट नहीं करता है_। तो मुझे आश्चर्य है कि क्या_नए बैश शेल का एक पर्यावरण चर है?वास्तव में किसी भी बैश शेल में, वही होता है
$ export | grep '_='कुछ भी आउटपुट नहीं करता है। तो मुझे आश्चर्य होता
_है कि क्या कभी बैश शेल का एक पर्यावरण चर है?तुलना के लिए:
$ dash $ export | grep '_=' export _='/bin/dash'
मेरी पोस्ट माइक की टिप्पणी और स्टीफन के जवाब से प्रेरित है ।
bash -c export | grep _=(बैश से), यह दिखाएगा कि माता-पिता ने bashकमांड को कैसे लागू किया है , भले ही $_माता-पिता में परेशान हों।
exportएक बिलिन है, लेकिन यदि आप उपयोग करते हैंprintenv _, तो यह आपको दिखाएगा कि यह कैसे लागू किया गया था:/usr/bin/printenvइस प्रणाली पर।