क्या शेल स्क्रिप्ट में कोड के ब्लॉक को कमेंट करने का एक सरल तरीका है?
क्या शेल स्क्रिप्ट में कोड के ब्लॉक को कमेंट करने का एक सरल तरीका है?
जवाबों:
बैश में:
#!/bin/bash
echo before comment
: <<'END'
bla bla
blurfl
END
echo after comment
'
और '
चारों ओर END
सीमांकक महत्वपूर्ण अन्यथा चीजें अंदर उदाहरण के लिए ब्लॉक कर रहे हैं, $(command)
पार्स और निष्पादित किया जाएगा।
EOF
एक उत्कृष्ट उदाहरण है (और ऐसा ही है !
, अपने आप में एक विस्मयादिबोधक चिह्न), लेकिन आप किसी भी अन्य शब्द का उपयोग कर सकते हैं SNURFLE_BURGERS
या classical_end_marker
जो टिप्पणी की गई सामग्री में अपने आप एक पंक्ति में प्रकट नहीं होता है। मैं रिक्त स्थान आदि के साथ प्रयोग करने से बचूंगा, लेकिन यह शब्द उनके साथ भी अच्छा काम कर सकता है।
:
) चला रहा है जो अपने इनपुट को नहीं पढ़ता है और हमेशा एक सफल मूल्य के साथ बाहर निकलता है, और इनपुट के रूप में "टिप्पणी" भेज रहा है। इससे ज्यादा नहीं।
शेल स्क्रिप्ट पर कोई ब्लॉक टिप्पणी नहीं है।
vi
(हाँ vi
) का उपयोग करके आप आसानी से लाइन एन से मीटर तक टिप्पणी कर सकते हैं
<ESC>
:10,100s/^/#/
(यह पढ़ता है, लाइन # 10 से 100 स्थानापन्न लाइन शुरू (^) एक # संकेत के साथ।)
और के साथ संयुक्त राष्ट्र टिप्पणी
<ESC>
:10,100s/^#//
(यह पढ़ता है, लाइन 10 से 100 स्थानापन्न लाइन प्रारंभ (^) के बाद # के साथ # नोटिंग //।)
vi
जहां है वहां लगभग सर्वव्यापी है /bin/sh
।
|noh
तो अंत में जोड़ें । पाइप अतिरिक्त कमांड को अलग करता है और noh
नोहलाइट के लिए है। अगली बार जब आप किसी चीज़ की खोज करते हैं, तो हाइलाइटिंग शब्द स्वचालित रूप से फिर से शुरू होगा। उदाहरण::10,100s/^/#/g|noh
<SHIFT>+G 10 <ENTER>
फिर 0
नेविगेट करने का कोई अन्य तरीका)। फिर <CTRL>+V
दृश्य ब्लॉक मोड में प्रवेश करने के लिए उपयोग करें और उन सभी लाइनों की शुरुआत को हाइलाइट करें जिन्हें आप टिप्पणी करना चाहते हैं (इस उदाहरण में 90 J
)। फिर SHIFT+I
हाइलाइट किए गए ब्लॉक से पहले डालने के लिए दबाएं । टिप्पणी चिह्न (जैसे #
) दर्ज करें और <ESC>
अपनी प्रीफ़िक्सिंग समाप्त करने के लिए दबाएं । यह स्पष्टीकरण सुपर लंबा लगता है, लेकिन मेरे अनुभव में यह अभ्यास में बहुत तेज है।
आप उपयोग कर सकते हैं:
if [ 1 -eq 0 ]; then
echo "The code that you want commented out goes here."
echo "This echo statement will not be called."
fi
if [ ];
यह भी काम करता है।
if false;
:। stackoverflow.com/a/18019516/2097284
निम्नलिखित के लिए काम करना चाहिए sh
, bash
, ksh
और zsh
।
टिप्पणी किए जाने वाले कोड के ब्लॉक अंदर रखे जा सकते हैं BEGINCOMMENT
और ENDCOMMENT
:
[ -z $BASH ] || shopt -s expand_aliases
alias BEGINCOMMENT="if [ ]; then"
alias ENDCOMMENT="fi"
BEGINCOMMENT
echo "This line appears in a commented block"
echo "And this one too!"
ENDCOMMENT
echo "This is outside the commented block"
उपरोक्त कोड निष्पादित करने के परिणामस्वरूप होगा:
This is outside the commented block
कोड ब्लॉक को अनलॉक्ड करने के लिए इस प्रकार टिप्पणी की गई, कहते हैं
alias BEGINCOMMENT="if : ; then"
के बजाय
alias BEGINCOMMENT="if [ ]; then"
ऊपर के उदाहरण में।
यदि आप एकल उद्धरणों को चकमा दे सकते हैं:
__='
blah blah comment.
'
: '
खोलने और '
बंद करने के लिए उपयोग करें ।
उदाहरण के लिए:
: '
This is a
very neat comment
in bash
'
यह वेगास के उदाहरण से मिलता है
विम में:
shift-V
(विजुअल मोड दर्ज करें), ब्लॉक में हाइलाइट लाइनों को ऊपर रखें:s/^/#/
कमांड इस तरह दिखेगा:
:'<,'>s/^/#
हिट दर्ज करें
जैसे
shift-V
jjj
:s/^/#
<enter>
:s/^#/
आप वीआई / वीआईएम के विजुअल ब्लॉक मोड का उपयोग कर सकते हैं जो इस तरह से सामान के लिए डिज़ाइन किया गया है:
Ctrl-V
Highlight first element in rows you want commented
Shift-i
#
esc
अयोग्यता होगी:
Ctrl-V
Highlight #'s
d
l
यह संख्याओं को गिनने या पढ़ने की संख्या रेखाओं को पढ़ने के बजाय इस तरह की क्रिया करने का vi का इंटरैक्टिव तरीका है।
अंत में, Gvim में आप ctrl-v के बजाय विजुअल ब्लॉक मोड में जाने के लिए ctrl-q का उपयोग करते हैं (क्योंकि यह पेस्ट का शॉर्टकट है)।
सभी ईमानदारी में, इतना अधिक क्यों ...
मैं निष्क्रिय कोड बनाने के लिए सक्रिय कोड लिखने के लिए वास्तव में एक बुरा अभ्यास मानता हूं।
मेरा समाधान: अधिकांश संपादकों के पास ब्लॉक मोड है। # इसका उपयोग उन सभी पंक्तियों में # जोड़ने के लिए करें जिन पर आप टिप्पणी करना चाहते हैं। क्या बड़ी बात है...
नोटपैड का उदाहरण:
बनाने के लिए: Alt - mousedrag नीचे, # दबाएँ।
हटाने के लिए: Alt-mousedrag डाउन, शिफ्ट-राइट एरो, डिलीट करें।
Sunny256 द्वारा स्वीकृत उत्तर में यहाँ-डॉक्टर चाल पर भिन्नता टिप्पणियों के लिए पर्ल कीवर्ड का उपयोग करना है। यदि आपकी टिप्पणियां वास्तव में किसी प्रकार के प्रलेखन हैं, तो आप टिप्पणी ब्लॉक के अंदर पर्ल सिंटैक्स का उपयोग करना शुरू कर सकते हैं, जो आपको इसे अच्छी तरह से स्वरूपित प्रिंट करने की अनुमति देता है, इसे मैन-पेज में परिवर्तित कर सकता है, आदि।
जहां तक शेल का संबंध है, आपको केवल इसके 'END'
साथ बदलने की आवश्यकता है '=cut'
।
echo "before comment"
: <<'=cut'
=pod
=head1 NAME
podtest.sh - Example shell script with embedded POD documentation
etc.
=cut
echo "after comment"
(" शेल स्क्रिप्ट में एम्बेडिंग प्रलेखन " पर पाया गया )
एक अन्य विधा है: यदि आपका संपादक कोई ब्लॉक टिप्पणी विकल्प नहीं है,
किया हुआ
यह किसी भी संपादक के साथ काम करता है
मुझे एक सिंगल लाइन खुली और बंद पसंद है:
if [ ]; then ##
...
...
fi; ##
'##' मुझे ब्लॉक कमेंट की शुरुआत और अंत आसानी से खोजने में मदद करता है। मैं '##' के बाद एक नंबर चिपका सकता हूं अगर मुझे उनमें से एक गुच्छा मिला है। टिप्पणी को बंद करने के लिए, मैं '[]' में एक '1' चिपका देता हूं। मैं कुछ मुद्दों से भी बचता हूं जो मैंने टिप्पणी ब्लॉक में एकल-उद्धरणों के साथ किए हैं।