शेलचेक एक स्थिर विश्लेषण उपकरण है जो बैश/श शैल स्क्रिप्ट में खराब कोड से संबंधित चेतावनियां और सुझाव दिखाता है। इसका उपयोग कई तरीकों से किया जा सकता है:वेब से अपनी शेल स्क्रिप्ट को एक ऑनलाइन संपादक (ऐस - जावास्क्रिप्ट में लिखा गया एक स्टैंडअलोन कोड संपादक) में https://www.shellcheck.net (यह हमेशा नवीनतम गिट के साथ सिंक्रनाइज़ किया जाता है) में चिपकाकर तत्काल प्रतिक्रिया के लिए प्रतिबद्ध है, और शेलचेक को आज़माने का सबसे आसान तरीका है)।
वैकल्पिक रूप से, आप इसे अपनी मशीन पर स्थापित कर सकते हैं और इसे टर्मिनल से चला सकते हैं, इसे अपने टेक्स्ट एडिटर के साथ-साथ अपने बिल्ड या टेस्ट सूट में एकीकृत कर सकते हैं।
शेलचेक मुख्य रूप से तीन चीजें करता है:
- यह विशिष्ट शुरुआती सिंटैक्स मुद्दों को इंगित करता है और समझाता है जो एक शेल को गुप्त त्रुटि संदेश देने का कारण बनता है।
- यह विशिष्ट मध्यवर्ती स्तर की सिमेंटिक समस्याओं की ओर इशारा करता है और समझाता है जो एक शेल को अजीब और प्रति-सहज रूप से व्यवहार करने का कारण बनता है।
- यह सूक्ष्म चेतावनियों, कोने के मामलों और नुकसानों को भी इंगित करता है जो एक उन्नत उपयोगकर्ता की अन्यथा काम करने वाली स्क्रिप्ट को भविष्य की परिस्थितियों में विफल कर सकते हैं।
इस लेख में, हम दिखाएंगे कि लिनक्स में आपकी शेल स्क्रिप्ट में बग या खराब कोड खोजने के लिए विभिन्न तरीकों से शेलचेक को कैसे स्थापित और उपयोग किया जाए।
लिनक्स में शेलचेक कैसे स्थापित करें और उसका उपयोग कैसे करें
शेलचेक जैसा कि दिखाया गया है, आपके पैकेज मैनेजर के माध्यम से स्थानीय रूप से आसानी से स्थापित किया जा सकता है।
डेबियन/उबंटू पर
# apt-get install shellcheck
RHEL/CentOS पर
# yum -y install epel-release # yum install ShellCheck
फेडोरा पर
# dnf install ShellCheck
एक बार शेलचेक स्थापित हो जाने के बाद, आइए देखें कि शेलचेक का उपयोग विभिन्न तरीकों से कैसे करें जिनका हमने पहले उल्लेख किया था।
वेब से शेलचेक का उपयोग करना
https://www.shellcheck.net पर जाएं और अपनी स्क्रिप्ट को प्रदान किए गए ऐस संपादक में पेस्ट करें, जैसा कि नीचे स्क्रीन शॉट में दिखाया गया है, आप संपादक के नीचे आउटपुट देखेंगे।
निम्नलिखित उदाहरण में, परीक्षण शेल स्क्रिप्ट में निम्नलिखित पंक्तियाँ हैं:
#!/bin/bash #declare variables MINARGS=2 E_NOTROOT=50 E_MINARGS=100 #echo values of variables echo $MINARGS echo $E_NONROOT exit 0;
ऊपर दिए गए स्क्रीनशॉट से, पहले दो चर E_NOTROOT और E_MINARGS घोषित किया गया है लेकिन अप्रयुक्त है, शेलचेक इन्हें "सूचक त्रुटियों" के रूप में रिपोर्ट करता है:
SC2034: E_NOTROOT appears unused. Verify it or export it. SC2034: E_MINARGS appears unused. Verify it or export it.
फिर दूसरी बात, गलत नाम (कथन में इको $E_NONROOT ) का उपयोग इको वैरिएबल E_NOTROOT . के लिए किया गया था , यही कारण है कि शेलचेक त्रुटि दिखाता है:
SC2153: Possible misspelling: E_NONROOT may not be assigned, but E_NOTROOT is
फिर से जब आप इको कमांड को देखते हैं, तो वेरिएबल्स को डबल कोट नहीं किया गया है (ग्लोबिंग और वर्ड स्प्लिटिंग को रोकने में मदद करता है), इसलिए शेल चेक चेतावनी दिखाता है:
SC2086: Double quote to prevent globbing and word splitting.
टर्मिनल से शेलचेक का उपयोग करना
आप कमांड-लाइन से शेलचेक भी चला सकते हैं, हम ऊपर दी गई समान शेल स्क्रिप्ट का उपयोग इस प्रकार करेंगे:
$ shellcheck test.sh
पाठ संपादक से शेलचेक का उपयोग करना
आप शेलचेक . भी देख सकते हैं विभिन्न संपादकों में सीधे सुझाव और चेतावनियाँ, यह संभवतः शेलचेक का उपयोग करने का एक अधिक कुशल तरीका है, एक बार जब आप एक फाइल सहेज लेते हैं, तो यह आपको कोड में कोई त्रुटि दिखाता है।
विम . में , ALE या Syntastic का उपयोग करें (हम इसका उपयोग करेंगे):
रोगज़नक़ . स्थापित करके प्रारंभ करें ताकि वाक्यात्मक स्थापित करना आसान हो। pathogen.vim . प्राप्त करने के लिए नीचे दिए गए आदेश चलाएँ फ़ाइल और इसके लिए आवश्यक निर्देशिकाएँ:
# mkdir -p ~/.vim/autoload ~/.vim/bundle && curl -LSso ~/.vim/autoload/pathogen.vim https://tpo.pe/pathogen.vim
फिर इसे अपने ~/.vimrc . में जोड़ें फ़ाइल:
execute pathogen#infect()
एक बार जब आप रोगज़नक़ स्थापित कर लेते हैं, और अब आप वाक्यात्मक को ~/.vim/bundle में डाल सकते हैं इस प्रकार:
# cd ~/.vim/bundle && git clone --depth=1 https://github.com/vim-syntastic/syntastic.git
इसके बाद, विम को बंद करें और इसे पुनः लोड करने के लिए इसे वापस शुरू करें, फिर नीचे कमांड टाइप करें:
:Helptags
यदि सब कुछ ठीक रहा, तो आपके पास शेलचेक होना चाहिए विम . के साथ एकीकृत , निम्न स्क्रीनशॉट दिखाते हैं कि यह उपरोक्त समान स्क्रिप्ट का उपयोग करके कैसे काम करता है।
यदि उपरोक्त चरणों का पालन करने के बाद आपको कोई त्रुटि मिलती है, तो संभवतः आपने रोगज़नक़ . स्थापित नहीं किया है सही ढंग से। चरणों को फिर से करें लेकिन यह सुनिश्चित करें कि आपने निम्न कार्य किया है:
- दोनों को बनाया ~/.vim/autoload और ~/.vim/bundle निर्देशिका।
- आपके ~/.vimrc . में एक्ज़िक्यूट पैथोजन#infect() लाइन जोड़ी गई फ़ाइल।
- क्या वाक्य रचना का git क्लोन ~/.vim/bundle के अंदर था ।
- उपरोक्त सभी निर्देशिकाओं तक पहुंचने के लिए उपयुक्त अनुमतियों का उपयोग करें।
शेल स्क्रिप्ट में खराब कोड की जांच के लिए आप अन्य संपादकों का भी उपयोग कर सकते हैं जैसे:
- Emacs . में , फ्लाईचेक . का उपयोग करें ।
- उदात्त में, SublimeLinter का उपयोग करें।
- परमाणु में, लिंटर का उपयोग करें।
- अधिकांश अन्य संपादकों में, GCC त्रुटि संगतता का उपयोग करें।
नोट :अधिक शेल चेकिंग करने के लिए खराब कोड की गैलरी का उपयोग करें।
शेलचेक जीथब रिपोजिटरी:https://github.com/koalaman/shellcheck
इतना ही! इस लेख में, हमने दिखाया कि कैसे ShellCheck . को स्थापित और उपयोग करना है लिनक्स में अपनी शेल स्क्रिप्ट में बग या खराब कोड खोजने के लिए। नीचे टिप्पणी अनुभाग के माध्यम से अपने विचार हमारे साथ साझा करें।
क्या आप किसी अन्य समान उपकरण के बारे में जानते हैं? अगर हाँ, तो उनके बारे में भी कमेंट में जानकारी साझा करें।