मैं इस उदाहरण के पार आया जब एक ओपनवेज़ कंटेनर के अंदर एक USB डिवाइस को माउंट करने की कोशिश कर रहा था और मैंने पहले दूसरी पंक्ति में निर्माण को कभी नहीं देखा था। क्या आप बता सकते हैं कि यह क्या दर्शाता है?
#!/bin/bash
. /etc/vz/vz.conf
मैं इस उदाहरण के पार आया जब एक ओपनवेज़ कंटेनर के अंदर एक USB डिवाइस को माउंट करने की कोशिश कर रहा था और मैंने पहले दूसरी पंक्ति में निर्माण को कभी नहीं देखा था। क्या आप बता सकते हैं कि यह क्या दर्शाता है?
#!/bin/bash
. /etc/vz/vz.conf
जवाबों:
यह बिलिन का एक पर्याय है source
। यह वर्तमान शेल में एक फ़ाइल से कमांड निष्पादित करेगा , जैसा कि help source
या से पढ़ा गया है help .
।
आपके मामले में, फ़ाइल /etc/vz/vz.conf
निष्पादित की जाएगी (बहुत संभावना है, इसमें केवल चर असाइनमेंट शामिल हैं जो बाद में स्क्रिप्ट में उपयोग किए जाएंगे)। यह /etc/vz/vz.conf
कई तरह से फ़ाइल को निष्पादित करने से अलग है, उदाहरण के लिए : सबसे स्पष्ट यह है कि फ़ाइल को निष्पादन योग्य होने की आवश्यकता नहीं है; तब आप इसे चलाने के बारे में सोचेंगे, bash /etc/vz/vz.conf
लेकिन यह केवल एक बच्चे की प्रक्रिया में इसे निष्पादित करेगा, और माता-पिता की स्क्रिप्ट में कोई संशोधन नहीं होगा (जैसे, चर का) बच्चा बनाता है।
उदाहरण:
$ # Create a file testfile that contains a variable assignment:
$ echo "a=hello" > testfile
$ # Check that the variable expands to nothing:
$ echo "$a"
$ # Good. Now execute the file testfile with bash
$ bash testfile
$ # Check that the variable a still expands to nothing:
$ echo "$a"
$ # Now _source_ the file testfile:
$ . testfile
$ # Now check the value of the variable a:
$ echo "$a"
hello
$
उम्मीद है की यह मदद करेगा।
source
नहीं है - यह C- शैली के गोले ( , ) - और zsh में भी है। सूचीबद्ध लोगों सहित बॉर्न-शैली के गोले में काम करता है । इस बात पर विचार करते हुए कि बैश एक बॉर्न-शैली का खोल है और शायद ही किसी गैर-तुच्छ जटिलता के किसी भी बैश स्क्रिप्ट को सी-स्टाइल शेल में चलाने की संभावना है, यह सच है कि इसे और अधिक पोर्टेबल माना जाना चाहिए। लेकिन बैश का पर्यायवाची आंशिक रूप से पोर्टेबिलिटी के लिए मौजूद है। csh
tcsh
.
.
source
.
.
यह सार्वभौमिक रूप से पोर्टेबल है और source
व्यापक रूप से फैला हुआ है, लेकिन सादे में काम नहीं करता है sh
।
जब कोई स्क्रिप्ट `स्रोत 'का उपयोग करके चलाया जाता है, तो यह मौजूदा शेल के भीतर चलता है, स्क्रिप्ट द्वारा बनाया या संशोधित किया गया कोई भी स्क्रिप्ट पूरी होने के बाद उपलब्ध रहेगा।
वाक्य - विन्यास । फ़ाइल नाम [तर्क]
source filename [arguments]
.
अधिकांश गोले (श, राख, क्श, आदि) में काम करेगा,source
बैश के लिए विशिष्ट है।