अरे दोस्तों मैं लिनक्स के लिए नया हूं।प्रोफ़ाइल को निष्पादित करने के लिए डॉट का उपयोग क्यों करें
नीचे दिए गए आदेश में, प्रोफ़ाइल को निष्पादित करने के लिए यह डॉट का उपयोग क्यों करता है?
. ~/.profile
अरे दोस्तों मैं लिनक्स के लिए नया हूं।प्रोफ़ाइल को निष्पादित करने के लिए डॉट का उपयोग क्यों करें
नीचे दिए गए आदेश में, प्रोफ़ाइल को निष्पादित करने के लिए यह डॉट का उपयोग क्यों करता है?
. ~/.profile
जैसा कि नौफल ने उल्लेख किया है, .
source
के लिए उपनाम है।
फ़ाइल को सोर्सिंग करके, सभी आदेश आपके वर्तमान बैश सत्र के संदर्भ में निष्पादित किए जाते हैं, जिसका अर्थ है कि यह निर्यात करने वाले सभी पर्यावरण चर अब आपके लिए उपलब्ध होंगे।
यदि आप इसे स्रोत के बजाय स्क्रिप्ट चलाते हैं, तो इसे सबहेल में निष्पादित किया जाता है और निर्यात किए गए चर आपके सत्र में नहीं भेजे जाते हैं। असल में, यह .profile
के उद्देश्य को काफी हद तक हरा देता है।
एक प्रदर्शन के रूप में, कहते हैं कि तुम फ़ाइल test.sh
है:
#!/bin/bash
# in test.sh
print "exporting HELLO"
export HELLO="my name is Paul"
आप इसे निष्पादित हैं:
[[email protected]]$ bash test.sh
exporting HELLO
[[email protected]]$ echo $HELLO
कुछ भी नहीं $HELLO
के बाद से बाहर प्रिंट हो अपने वर्तमान सत्र में परिभाषित नहीं है। हालांकि, अगर आप यह स्रोत यदि:
[[email protected]]$ . test.sh
exporting HELLO
[[email protected]]$ echo $HELLO
my name is Paul
फिर $HELLO
अपने वर्तमान सत्र में उपलब्ध हो जाएगा।
अधिक संदर्भ के बिना बताने में काफी मुश्किल है, लेकिन एक प्रयोग बैश-विशिष्ट फ़ाइल .bash_profile
है जिसमें अधिक सामान्य (जहां तक बोर्न शैल जाते हैं) फ़ाइल .profile
फ़ाइल शामिल है, क्योंकि जब बैश पहले पाता है, तो यह लोड नहीं होगा दूसरा खुद ही।
शानदार उदाहरण है, लेकिन इस कमांड में: cp /usr/local/1.txt। क्या डॉट अभी भी स्रोत का प्रतिनिधित्व करता है? या इस संदर्भ में इसका एक और अर्थ है – mko
उस संदर्भ में, डॉट का अर्थ है 'वर्तमान निर्देशिका'। डॉट केवल एक स्रोत के लिए उपनाम है जब कमांड के रूप में उपयोग किया जाता है। –
सामान्य रूप से, डॉट के संदर्भ के आधार पर 3 अलग-अलग अर्थ हैं। देखें http://www.linuxtopia.org/online_books/advanced_bash_scripting_guide/special-chars.html –