वे बाश में बराबर हैं कि वे ठीक वैसा ही करते हैं। दूसरी ओर, source5 अक्षर लंबा है और POSIX- केवल गोले या बॉर्न के लिए पोर्टेबल नहीं है जबकि .(डॉट) है, इसलिए मैं कभी भी उपयोग करने से परेशान नहीं हूं source।
यह सही है - एक फाइल सोर्सिंग वर्तमान शेल में कमांड चलाता है और यह आपके वर्तमान शेल वातावरण को प्रभावित करेगा। आप अभी भी खट्टा फ़ाइल के लिए तर्क पारित कर सकते हैं और बैश वास्तव में $PATHएक सामान्य आदेश की तरह फ़ाइल नाम के लिए देखेंगे यदि इसमें कोई स्लैश नहीं है।
.बनाम के मूल प्रश्न से संबंधित नहीं है source, लेकिन आपके उदाहरण में,
. ./myScript.sh
के समान नहीं है
source myScript.sh
क्योंकि जबकि .और sourceकार्यात्मक रूप से समान हैं, myScript.shऔर समान ./myScript.shनहीं हैं। चूंकि ./myScript.shइसमें एक स्लैश होता है, इसलिए इसे एक पथ के रूप में व्याख्या किया जाता है और शेल बस उपयोग करता है ./myScript.sh। हालांकि, myScript.shएक स्लैश नहीं है इसलिए शेल $PATHपहले इसके लिए एक खोज करता है । यह POSIX निर्दिष्ट मानक व्यवहार है .। अधिकांश गोले इस के लिए डिफ़ॉल्ट हालांकि वे का व्यवहार बदलने के लिए (जैसे पथ खोज के बाद वर्तमान कार्यशील निर्देशिका में खोज के रूप में) एक्सटेंशन या विकल्पों जोड़ सकते हैं ./ source।