Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Bash प्रोग्रामिंग

ShellCheck: रीयल-टाइम चेतावनियों और सिफारिशों के साथ बैश स्क्रिप्ट त्रुटियों का पता लगाएं और ठीक करें

ShellCheck एक स्टेटिक एनालिसिस टूल है जो बैश/एसएच शेल स्क्रिप्ट्स में खराब कोड के बारे में चेतावनियां और सुझाव दिखाता है। इसका उपयोग कई तरीकों से किया जा सकता है: वेब से https://www.shellcheck.net पर ऑनलाइन एडिटर (Ace - जावास्क्रिप्ट में लिखा एक स्टैंडअलोन कोड एडिटर) में अपना शेल स्क्रिप्ट पेस्ट करके (यह हमेशा नवीनतम गिट कमिट के साथ सिंक्रनाइज़ होता है, और ShellCheck को आज़माने का सबसे सरल तरीका है) तत्काल प्रतिक्रिया के लिए।

वैकल्पिक रूप से, आप इसे अपनी मशीन पर इंस्टॉल कर सकते हैं और टर्मिनल से चला सकते हैं, इसे अपने टेक्स्ट एडिटर के साथ इंटीग्रेट कर सकते हैं और साथ ही अपने बिल्ड या टेस्ट सूट्स में भी।

ShellCheck मुख्य रूप से तीन चीजें करता है:

  • यह उन विशिष्ट शुरुआती सिंटैक्स मुद्दों को इंगित करता है और समझाता है जो शेल को गूढ़ त्रुटि संदेश देने का कारण बनते हैं।
  • यह उन विशिष्ट मध्यवर्ती स्तर की सिमेंटिक समस्याओं को इंगित करता है और समझाता है जो शेल को अजीब और प्रति-सहज तरीके से व्यवहार करने का कारण बनते हैं।
  • यह सूक्ष्म चेतावनियों, कॉर्नर केस और नुकसान को भी इंगित करता है जो एक उन्नत उपयोगकर्ता की अन्यथा काम करने वाली स्क्रिप्ट को भविष्य की परिस्थितियों में विफल होने का कारण बन सकते हैं।

इस लेख में, हम दिखाएंगे कि लिनक्स में अपने शेल स्क्रिप्ट्स में बग्स या खराब कोड खोजने के लिए विभिन्न तरीकों से ShellCheck को कैसे इंस्टॉल और उपयोग करें।

लिनक्स में ShellCheck कैसे इंस्टॉल और उपयोग करें

ShellCheck को अपने पैकेज मैनेजर के माध्यम से स्थानीय रूप से आसानी से इंस्टॉल किया जा सकता है जैसा दिखाया गया है।

Debian/Ubuntu पर

# apt-get install shellcheck 

RHEL/CentOS पर

# yum -y install epel-release # yum install ShellCheck 

Fedora पर

# dnf install ShellCheck 

एक बार ShellCheck इंस्टॉल हो जाने पर, आइए देखें कि जिन विधियों का हमने पहले उल्लेख किया था, उनका उपयोग करके ShellCheck का उपयोग कैसे करें।

वेब से ShellCheck का उपयोग करना

https://www.shellcheck.net पर जाएं और प्रदान किए गए Ace एडिटर में अपना स्क्रिप्ट पेस्ट करें, आप एडिटर के नीचे आउटपुट देखेंगे जैसा स्क्रीनशॉट में दिखाया गया है।

निम्न उदाहरण में, टेस्ट शेल स्क्रिप्ट में निम्न लाइनें हैं:

#!/bin/bash #वेरिएबल्स घोषित करें MINARGS=2 E_NOTROOT=50 E_MINARGS=100 #वेरिएबल्स के मान इको करें echo $MINARGS echo $E_NONROOT exit 0; 
ShellCheck: रीयल-टाइम चेतावनियों और सिफारिशों के साथ बैश स्क्रिप्ट त्रुटियों का पता लगाएं और ठीक करेंShellCheck: रीयल-टाइम चेतावनियों और सिफारिशों के साथ बैश स्क्रिप्ट त्रुटियों का पता लगाएं और ठीक करें

उपरोक्त स्क्रीनशॉट से, पहले दो वेरिएबल्स E_NOTROOT और E_MINARGS घोषित किए गए हैं लेकिन उपयोग नहीं किए गए हैं, ShellCheck इन्हें "सुझाव त्रुटियों" के रूप में रिपोर्ट करता है:

SC2034: E_NOTROOT appears unused. Verify it or export it. SC2034: E_MINARGS appears unused. Verify it or export it. 

फिर दूसरी बात, गलत नाम (स्टेटमेंट echo $E_NONROOT में) का उपयोग वेरिएबल E_NOTROOT को इको करने के लिए किया गया था, इसलिए ShellCheck त्रुटि दिखाता है:

SC2153: Possible misspelling: E_NONROOT may not be assigned, but E_NOTROOT is 

फिर से जब आप इको कमांड्स को देखते हैं, तो वेरिएबल्स डबल कोटेड नहीं हैं (ग्लोबिंग और वर्ड स्प्लिटिंग को रोकने में मदद करता है), इसलिए Shell Check चेतावनी दिखाता है:

SC2086: Double quote to prevent globbing and word splitting. 

टर्मिनल से ShellCheck का उपयोग करना

आप कमांड-लाइन से भी ShellCheck चला सकते हैं, हम ऊपर वाले शेल स्क्रिप्ट का उपयोग करेंगे:

$ shellcheck test.sh 
ShellCheck: रीयल-टाइम चेतावनियों और सिफारिशों के साथ बैश स्क्रिप्ट त्रुटियों का पता लगाएं और ठीक करेंShellCheck: रीयल-टाइम चेतावनियों और सिफारिशों के साथ बैश स्क्रिप्ट त्रुटियों का पता लगाएं और ठीक करें

टेक्स्ट एडिटर से ShellCheck का उपयोग करना

आप विभिन्न एडिटर्स में सीधे ShellCheck सुझावों और चेतावनियों को देख सकते हैं, यह शायद ShellCheck का उपयोग करने का एक अधिक कुशल तरीका है, एक बार जब आप फ़ाइल सेव करते हैं, तो यह आपको कोड में किसी भी त्रुटि को दिखाता है।

Vim में, ALE या Syntastic का उपयोग करें (हम इसका उपयोग करेंगे):

Pathogen इंस्टॉल करके शुरू करें ताकि syntastic इंस्टॉल करना आसान हो। pathogen.vim फ़ाइल और इसके लिए आवश्यक डायरेक्टरीज़ प्राप्त करने के लिए नीचे दिए गए कमांड्स चलाएं:

# mkdir -p ~/.vim/autoload ~/.vim/bundle && curl -LSso ~/.vim/autoload/pathogen.vim https://tpo.pe/pathogen.vim 

फिर इसे अपने ~/.vimrc फ़ाइल में जोड़ें:

execute pathogen#infect() 

एक बार जब आप पैथोजन इंस्टॉल कर लेते हैं, और अब आप syntastic को ~/.vim/bundle में निम्नानुसार रख सकते हैं:

# cd ~/.vim/bundle && git clone --depth=1 https://github.com/vim-syntastic/syntastic.git 

अगला, vim को बंद करें और इसे रीलोड करने के लिए वापस शुरू करें, फिर नीचे दी गई कमांड टाइप करें:

:Helptags 

यदि सब ठीक रहा, तो आपके पास ShellCheck Vim के साथ इंटीग्रेटेड होना चाहिए, निम्न स्क्रीनशॉट दिखाते हैं कि यह ऊपर वाले स्क्रिप्ट का उपयोग करके कैसे काम करता है।

ShellCheck: रीयल-टाइम चेतावनियों और सिफारिशों के साथ बैश स्क्रिप्ट त्रुटियों का पता लगाएं और ठीक करेंShellCheck: रीयल-टाइम चेतावनियों और सिफारिशों के साथ बैश स्क्रिप्ट त्रुटियों का पता लगाएं और ठीक करें

यदि उपरोक्त चरणों का पालन करने के बाद आपको त्रुटि मिलती है, तो संभवतः आपने Pathogen को सही ढंग से इंस्टॉल नहीं किया। चरणों को फिर से करें लेकिन सुनिश्चित करें कि आपने निम्न किया है:

  • ~/.vim/autoload और ~/.vim/bundle दोनों डायरेक्टरीज़ बनाईं।
  • execute pathogen#infect() लाइन को अपने ~/.vimrc फ़ाइल में जोड़ा।
  • ~/.vim/bundle के अंदर syntastic का गिट क्लोन किया।
  • उपरोक्त सभी डायरेक्टरीज़ तक पहुंचने के लिए उपयुक्त अनुमतियों का उपयोग करें।

आप शेल स्क्रिप्ट्स में खराब कोड जांचने के लिए अन्य एडिटर्स का भी उपयोग कर सकते हैं जैसे:

  • Emacs में, Flycheck का उपयोग करें।
  • Sublime में, SublimeLinter का उपयोग करें।
  • Atom में, Linter का उपयोग करें।
  • अधिकांश अन्य एडिटर्स में, GCC एरर संगतता का उपयोग करें।

नोट: अधिक ShellChecking करने के लिए खराब कोड की गैलरी का उपयोग करें।

ShellCheck GitHub रिपॉजिटरी: https://github.com/koalaman/shellcheck

बस इतना ही! इस लेख में, हमने दिखाया कि लिनक्स में अपने शेल स्क्रिप्ट्स में बग्स या खराब कोड खोजने के लिए ShellCheck को कैसे इंस्टॉल और उपयोग करें। अपने विचार नीचे कमेंट सेक्शन के माध्यम से हमारे साथ साझा करें।

क्या आप वहां किसी अन्य समान टूल के बारे में जानते हैं? यदि हाँ, तो उनके बारे में जानकारी कमेंट्स में भी साझा करें।


  1. iPhone और iPad के लिए टॉप मनोरंजन ऐप्स: आपका परम गाइड iPhone और iPad के लिए टॉप मनोरंजन ऐप्स: आपका परम गाइड

    आजकल, देखने और सुनने के लिए इतनी सामग्री उपलब्ध है। iOS एक ऐसा प्लेटफॉर्म है जिसमें ऐप्स की एक लंबी सूची है जो आपको बोरियत से छुटकारा पाने में मदद कर सकती है क्योंकि App Store पर विभिन्न ऐप्स उपलब्ध हैं। हालांकि, उनमें से सभी मुफ्त में उपलब्ध नहीं हैं। इसके अलावा, ऐसा ऐप ढूंढना काफी मुश्किल है जो आप

  1. Windows और Mac के लिए टॉप 10 फ्री फ्लोचार्ट टूल्स - पेशेवर चार्ट सहजता से बनाएं Windows और Mac के लिए टॉप 10 फ्री फ्लोचार्ट टूल्स - पेशेवर चार्ट सहजता से बनाएं

    क्या आपको नहीं लगता कि फ्लोचार्ट बहुत कूल हैं? और खासकर जब आप सर्वश्रेष्ठ फ्लोचार्ट सॉफ्टवेयर में से एक का उपयोग करके एक बनाते हैं जो आपको काम को सहजता से पूरा करने की अनुमति देता है। चाहे वह आपका ऑफिस प्रेजेंटेशन हो या कॉलेज प्रोजेक्ट, फ्लोचार्ट हमेशा आपके प्रयास में एक अतिरिक्त बढ़त जोड़ते हैं। ट

  1. Windows और Mac के लिए शीर्ष 10 मुफ्त फ्लोचार्ट सॉफ्टवेयर - अपनी परियोजनाओं को सुव्यवस्थित करें Windows और Mac के लिए शीर्ष 10 मुफ्त फ्लोचार्ट सॉफ्टवेयर - अपनी परियोजनाओं को सुव्यवस्थित करें

    क्या आपको नहीं लगता कि फ्लोचार्ट बहुत अच्छे होते हैं? और खासकर जब आप सर्वश्रेष्ठ फ्लोचार्ट सॉफ्टवेयर में से एक का उपयोग करके एक बनाते हैं जो आपको काम को सहजता से पूरा करने की अनुमति देता है। चाहे वह आपकी ऑफिस प्रेजेंटेशन हो या कॉलेज प्रोजेक्ट, फ्लोचार्ट हमेशा आपके प्रयास में एक अतिरिक्त बढ़त जोड़ते