2017-09-23 15 views
7

आज मैंने एक बैश स्क्रिप्ट को एक टिप्पणी को दर्शाने के लिए एक कोलन का उपयोग किया। एक कोलन और हैश चिह्न का उपयोग करने के बीच क्या अंतर है?बाश टिप्पणियों के लिए: और # के बीच अंतर

: This is a comment. 
# This is also a comment. 

एक के लिए, मुझे पता है तुम पीछे टिप्पणी के लिए एक बृहदान्त्र का उपयोग नहीं कर सकते हैं:

cd somedir : This won't work as a comment. 

लेकिन तथ्य यह है कि ऊपर के उदाहरण में काम करता है मुझे : कैसे मूल्यांकन किया जाता है के बारे में हैरान है।

+1

आप संबंधित चर्चा को पढ़ना चाहेंगे https://stackoverflow.com/questions/3224878/what-is-the-purpose-of-the-colon-gnu-bash-builtin – slevy1

+0

एक पिछली टिप्पणी के लिए, आपको इसकी आवश्यकता है ';:' का उपयोग करें। बस मजाक कर, उस दूसरे आदमी का जवाब देखें :-) – paxdiablo

उत्तर

9

: बस true के लिए एक उपनाम है, और true अपने तर्कों पर ध्यान नहीं देता:

# Does nothing: 
true foo bar etc hello 

# Does the same: 
: foo bar etc hello 

यह एक टिप्पणी नहीं है और क्योंकि इसके सभी तर्क अभी भी पार्स और मूल्यांकन किया जाता है कभी नहीं, एक टिप्पणी के रूप में इस्तेमाल किया जाना चाहिए:

: This "comment" actually executes this command: $(touch foo) 
ls -l foo 

या यहाँ है, जहां StackOverflow की वाक्य रचना हाइलाइटिंग ऊपर उठाता है कि बीच में आदेश वास्तव में सिर्फ पाठ है, भले ही एक मानव नहीं है की तरह:

: The command below won't run: 
echo "Hello World" 
: because the surrounding "comments" each contain a ' characters 
1

':' एक शैल बिल्टिन कमांड है जो तर्क के विस्तार के अलावा कुछ भी नहीं करता है और true देता है। bash man page से:

: [arguments] 
No effect; the command does nothing beyond expanding arguments 
and performing any specified redirections. A zero exit code is 
returned. 

# एक टिप्पणी है। लेकिन यह केवल एकल लाइनों के लिए काम करता है।

आप ':' कमांड here और बेहतर उत्तर here के बारे में अधिक पढ़ सकते हैं।

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