शेल स्क्रिप्ट में मल्टी-लाइन कमांड कैसे टिप्पणी करें?


19

जब लंबे, स्विच-हैवी कमांड का आह्वान किया जाता है, तो उन्हें शेल स्क्रिप्ट में लिखना एक अच्छा अभ्यास है। क्या इस तरह की लिपियों में लाइनों पर टिप्पणी करने का एक आसान तरीका है? मैंने निम्नलिखित विधियों की कोशिश की है, लेकिन न तो काम करता है।

# the \ is also commented out, resulting in "command" and "--good-switch".
command \
  #--bad-switch \
  --good-switch \

# seems to send an extra argument to the command
command \
  \ #--bad-switch \
  --good-switch
shell 

1
दूसरा एक तर्क के रूप में एक स्थान भेजा जाता है ( \ अगले चरित्र से बच जाता है, जो नई कहानियों को "छुपाता है" लेकिन रिक्त स्थान को महत्वपूर्ण बनाता है)।
geekosaur

जवाबों:


14

यह एक विकल्प हो सकता है: कमांड स्टोर करें और एक ऐरे में आएँ, फिर उसके बाद इसे निष्पादित करें

# build the command
cmd=( ls
        -F
      # -a   # comment out this option temporarily
        -l
    )
# $cmd is now an array with 3 elements

# execute it
"${cmd[@]}"

यह bash
अकेला है

3

मैंने हमेशा कमांड के बाद ही टिप्पणी की।

command \
  --good-switch
# --bad-switch          with explanation here, if needed

0

मुद्दा यह है कि लाइन को पार्स करने से पहले स्लैश को हटा दिया जाता है, इसलिए पहले कमांड को पार्स किया जाता है जैसे कि आपने लिखा है command #--bad-switch --good-switch। यदि आपके पास वाक्यों का एक लंबा अनुक्रम है, तो आप उदाहरण के लिए इसके ऊपर या नीचे एक पंक्ति-दर-पंक्ति टिप्पणी ब्लॉक लिख सकते हैं , प्रत्येक को बारी-बारी से समझा सकते हैं, या आप मापदंडों को एक चर में संग्रहीत कर सकते हैं (हालांकि यह अक्सर उद्धृत सिरदर्द देता है। विशेष वर्ण)।


1
यह मामला प्रतीत नहीं होता है। --good-switchएक कमांड के रूप में व्याख्या की गई है।

0

डिजिटल रॉस द्वारा उत्तर देखें ।

यह प्रश्न भी देखें कि मैंने अभी पोस्ट किया है, निरंतरता चरित्र के बाद टिप्पणियों के साथ मल्टी लाइन कमांड को बैश करें

यह एक उपयोगी सुविधा होगी। यह एक दया है इसका मानक समर्थन नहीं है।


0

एक टिप्पणी, कनेक्टेड लाइनों की श्रृंखला को ब्रेक करती है, इसलिए सबसे सरल समाधान सूची के अंत में टिप्पणी की गई लाइनों को स्थानांतरित करना होगा।

command \
  --good-switch \
  # --bad-switch \

यदि आप ऑर्डर नहीं बदलना चाहते हैं, तो आप :कनेक्टेड लाइनों को बरकरार रखने के लिए कमांड (कोलन यूटिलिटी, जो कुछ नहीं करता है) का उपयोग कर सकते हैं :

command \
  `: --bad-switch `\
  --good-switch \

मैंने इसके साथ परीक्षण किया:

function command { 
  echo "num args:" $#;
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.