2013-08-21 21 views
38

किसी भी एक सुझाव दे सकते हैं # के अलावा अन्य खोल स्क्रिप्ट में विशेष लाइनों टिप्पणी करने के लिए कैसे,शैल स्क्रिप्ट में विशेष लाइनों को कैसे टिप्पणी करें?

लगता है अगर मैं, 5 लाइनों टिप्पणी करने के बजाय प्रत्येक पंक्ति को # जोड़ने के लिए चाहते हैं, वहाँ 5 टिप्पणी करने के लिए किसी अन्य तरीके से है लाइनों?

अग्रिम धन्यवाद।

+1

दुर्भाग्य से नहीं। –

+5

नहीं। टिप्पणियां केवल अग्रणी '#' के साथ की जा सकती हैं। कोई एकाधिक लाइन टिप्पणियां नहीं हैं (जैसे कि php में '/ * ... * /')। – fedorqui

+0

उन्हें – wyu

उत्तर

11

हां (हालांकि यह बुरा हैक) है। आप heredoc का उपयोग इस प्रकार कर सकते हैं:

#!/bin/sh 

# do valuable stuff here 
touch /tmp/a 

# now comment out all the stuff below up to the EOF 
echo <<EOF 
... 
... 
... 
EOF 

यह क्या कर रहा है? एक heredoc नामांकित कमांड में टर्मिनेटर (इस मामले में, ईओएफ) तक निम्नलिखित सभी इनपुट फ़ीड्स करता है। तो अगर आप कोड आप

echo <<EOF 
... 
EOF 

के साथ बाहर टिप्पणी करना चाहते हैं चारों ओर कर सकते हैं और यह सब कोड दो EOFs के बीच निहित लेते हैं और उन्हें echo को खिलाने जाएगा (echo stdin से नहीं पढ़ता तो यह सब फेंक दिया जाता है दूर)।

ध्यान दें कि उपरोक्त के साथ आप heredoc में कुछ भी डाल सकते हैं। यह वैध शेल कोड नहीं होना चाहिए (यानी इसे ठीक से पार्स नहीं करना पड़ता है)।

यह बहुत बुरा है, और मैं इसे केवल रुचि के बिंदु के रूप में पेश करता हूं। आप सी के /* ... */

+1

आप शायद 'echo' के अलावा कुछ और उपयोग करना चाहते हैं, या फिर echo को/dev/null पर भेजें। – ams

+0

हां। आदेश कोई फर्क नहीं पड़ता।मुझे लगता है कि मेरे सिग्विन टर्मिनल पर, हालांकि, गूंज stdin नहीं पढ़ता है। मुझे संदेह है कि कार्यान्वयन –

+0

नहीं है, यह * कुछ भी नहीं पढ़ता है, लेकिन यह * आउटपुट * एक खाली रेखा * करता है। 'सच' बेहतर हो सकता है। – ams

24

के बराबर नहीं कर सकते हैं आप एक सशर्त का उपयोग कर एक स्क्रिप्ट के अनुभाग पर टिप्पणी कर सकते हैं।

उदाहरण के लिए, निम्न स्क्रिप्ट:

DEBUG=false 
if ${DEBUG}; then 
echo 1 
echo 2 
echo 3 
echo 4 
echo 5 
fi 
echo 6 
echo 7 

होगा उत्पादन:

6 
7 

आदेश में टिप्पणी हटाएं कोड की धारा को, तो आप बस चर टिप्पणी करने के लिए की जरूरत है:

#DEBUG=false 

(ऐसा करने से संख्या मुद्रित होगी 7. के माध्यम से bers 1)

0

आप '#' पर भरोसा करने की लेकिन काम आसान बनाने के लिए vi में आप प्रदर्शन कर सकते हैं निम्नलिखित है:

:10,20 s/^/# 
10 के साथ

और 20 किया जा रहा आरंभ और अंत लाइन नंबर लाइनों की आप

बाहर टिप्पणी करने के लिए और पूर्ववत करना चाहते हैं जब आप पूरा कर रहे हैं: में श, बैश, और पर्ल

:10,20 s/^#// 
संबंधित मुद्दे