एक बैश स्क्रिप्ट में एक स्पेस और फिर एक पाथ का मतलब क्या होता है?


83

मैं इस उदाहरण के पार आया जब एक ओपनवेज़ कंटेनर के अंदर एक USB डिवाइस को माउंट करने की कोशिश कर रहा था और मैंने पहले दूसरी पंक्ति में निर्माण को कभी नहीं देखा था। क्या आप बता सकते हैं कि यह क्या दर्शाता है?

#!/bin/bash
. /etc/vz/vz.conf

जवाबों:


98

यह बिलिन का एक पर्याय है 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
$

उम्मीद है की यह मदद करेगा।


14
बस एक नोट: .अधिकांश गोले (श, राख, क्श, आदि) में काम करेगा, sourceबैश के लिए विशिष्ट है।
Dmytro Sirenko

3
@EarlGray सिर्फ बैश sourceनहीं है - यह C- शैली के गोले ( , ) - और zsh में भी है। सूचीबद्ध लोगों सहित बॉर्न-शैली के गोले में काम करता है । इस बात पर विचार करते हुए कि बैश एक बॉर्न-शैली का खोल है और शायद ही किसी गैर-तुच्छ जटिलता के किसी भी बैश स्क्रिप्ट को सी-स्टाइल शेल में चलाने की संभावना है, यह सच है कि इसे और अधिक पोर्टेबल माना जाना चाहिए। लेकिन बैश का पर्यायवाची आंशिक रूप से पोर्टेबिलिटी के लिए मौजूद है। cshtcsh..source.
एलियाह कगन

1
@ एलियाकगन हाँ, तुम सही हो; यह कहना बेहतर है कि .यह सार्वभौमिक रूप से पोर्टेबल है और sourceव्यापक रूप से फैला हुआ है, लेकिन सादे में काम नहीं करता है sh
दमयेत्रो Sirenko

5

जब कोई स्क्रिप्ट `स्रोत 'का उपयोग करके चलाया जाता है, तो यह मौजूदा शेल के भीतर चलता है, स्क्रिप्ट द्वारा बनाया या संशोधित किया गया कोई भी स्क्रिप्ट पूरी होने के बाद उपलब्ध रहेगा।

वाक्य - विन्यास । फ़ाइल नाम [तर्क]

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