"स्रोत" और "" के बीच अंतर क्या है?


147

बाश में source /some/scriptऔर इसके साथ एक स्क्रिप्ट को निष्पादित करने में क्या अंतर है (जैसे / कुछ / स्क्रिप्ट) . /some/script?

जवाबों:


134

sourceऔर बाश. में पर्यायवाची हैं ।

जो लोग यह सत्यापित करना चाहते हैं कि कमांड केवल समानार्थी हैं और अधिक कुछ नहीं, स्रोत कोड को देखें , संस्करण 4.3 के लिए कहें, और फ़ाइल की जांच करें builtins/source.def। आप पढ़ेंगे कि दोनों अंतर्निहित कमांड, sourceऔर ., एक ही फ़ंक्शन का उपयोग करते हैं source_builtin:।


यह कहां परिभाषित किया गया है? मेरा मतलब है स्रोत के लिए एक उपनाम या यह कुछ और बात है?
बिनव

ठीक यही बात

12
@binW: .पारंपरिक स्रोत कमांड है, जो प्राचीन बोर्न शेल से विरासत में मिला है। sourceबस एक बैश बिलिन है जो बिल्कुल वैसा ही करता है ., शायद इसलिए क्योंकि यह अधिक पठनीय है ( .अकेले एक छोटे से फ़ॉन्ट के साथ स्पॉट करना मुश्किल हो सकता है)। आप वही जानकारी देखेंगे help sourceऔर दिखाएंगे help .
गरिहा

3
@binW: यदि आप में देखते हैं man bashऔर फिर खोजते हैं तो sourceआप देखेंगे कि source filename [arguments]यह एक पर्यायवाची है . filename [arguments]
मैथ्यू रैनकिन

45

.sourcebash में पर्यायवाची है , लेकिन POSIX sh में नहीं, इसलिए .यदि आपकी स्क्रिप्ट / bin / sh द्वारा चलाई जाती है तो आपको इसका उपयोग करना चाहिए । ध्यान दें कि बैश POSIX sh की तरह चलने का दावा करता है जब / बिन / sh के रूप में कहा जाता है, लेकिन sourceशिकायत के बिना स्वीकार करता है ।

इस व्यवहार ने मुझे काट दिया है, उदाहरण के लिए, ऐश के तहत चलाए जाने के दौरान / बिन / श के रूप में बैश के साथ परीक्षण की गई स्क्रिप्ट।


16
POSIX शेल को प्रतिबंधित नहीं करता है। पोसिक्स सिर्फ कहता है; शेल कम से कम इस और उस सुविधा का समर्थन करेगा। तो एक POSIX शेल अतिरिक्त सुविधाओं को लागू करने के लिए स्वतंत्र है, जब तक कि POSIX द्वारा बताए गए कार्यान्वित किए जाते हैं। जब शेबंग कहता है कि #!/bin/shआपको कभी भी यह नहीं मानना ​​चाहिए कि शेल कुछ भी समर्थन करता है, लेकिन पोसिक्स सुविधाएँ। pubs.opengroup.org/onlinepubs/9699919799/utilities/…
geirha

नाम देखने के क्रम से आप प्रभावित हो सकते हैं: unix.stackexchange.com/q/17815/8250
Lekensteyn

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