2011-02-17 5 views
6

अरे दोस्तों मैं लिनक्स के लिए नया हूं।प्रोफ़ाइल को निष्पादित करने के लिए डॉट का उपयोग क्यों करें

नीचे दिए गए आदेश में, प्रोफ़ाइल को निष्पादित करने के लिए यह डॉट का उपयोग क्यों करता है?

. ~/.profile 

उत्तर

11

जैसा कि नौफल ने उल्लेख किया है, .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 अपने वर्तमान सत्र में उपलब्ध हो जाएगा।

+0

शानदार उदाहरण है, लेकिन इस कमांड में: cp /usr/local/1.txt। क्या डॉट अभी भी स्रोत का प्रतिनिधित्व करता है? या इस संदर्भ में इसका एक और अर्थ है – mko

+0

उस संदर्भ में, डॉट का अर्थ है 'वर्तमान निर्देशिका'। डॉट केवल एक स्रोत के लिए उपनाम है जब कमांड के रूप में उपयोग किया जाता है। –

+0

सामान्य रूप से, डॉट के संदर्भ के आधार पर 3 अलग-अलग अर्थ हैं। देखें http://www.linuxtopia.org/online_books/advanced_bash_scripting_guide/special-chars.html –

4

अवधि ऑपरेटर source कमांड के लिए एक उपनाम है। विवरण here

+1

आपका लिंक कहता है: >> ... स्रोत डॉट/अवधि के लिए समानार्थी है। ' बैश में, लेकिन POSIX sh में नहीं, इसलिए अधिकतम संगतता अवधि के लिए उपयोग करें। ... << मैंने पाया कि जानकारी उपयोगी – eli

1

अधिक संदर्भ के बिना बताने में काफी मुश्किल है, लेकिन एक प्रयोग बैश-विशिष्ट फ़ाइल .bash_profile है जिसमें अधिक सामान्य (जहां तक ​​बोर्न शैल जाते हैं) फ़ाइल .profile फ़ाइल शामिल है, क्योंकि जब बैश पहले पाता है, तो यह लोड नहीं होगा दूसरा खुद ही।

संबंधित मुद्दे

 संबंधित मुद्दे