প্রকল্প সম্পর্কে
ShellCheck হল বাশ/শ স্ক্রিপ্টের জন্য একটি স্ট্যাটিক বিশ্লেষণ টুল, যা GNU GPLv3 এর অধীনে প্রকাশিত হয়েছে। এটি স্ক্রিপ্টগুলিকে স্ক্যান করে এবং তাদের চালানোর পরিবর্তে চেতাবিজ্ঞপ্তি এবং পরামর্শ প্রদান করে।
এর উদ্দেশ্য হল শুরু করা সিনট্যাক্স সমস্যাগুলি স্পষ্ট করা যা ক্রিপ্টিক শেল ভুল তৈরি করে, মধ্যম-স্তরের সেম্যান্টিক সমস্যা যা শেলগুলিকে বিরুদ্ধমুখী ভাবে কাজ করতে বাধ্য করে এবং সূক্ষ্ম বাধা বা কোণ কেসগুলি যা পরে কাজ করা স্ক্রিপ্টগুলিকে ভেঙে দিতে পারে।
README এ বিস্তৃত বিষয় শ্রেণীগুলির একটি গ্যালারি রয়েছে: উদ্ধৃতি সমস্যা (অনুবাদিত চলক, উদ্ধৃত টিল্ডা বিস্তার, চলকে সরাসরি উদ্ধৃতি, আগে বিস্তারিত ট্র্যাপ), শর্ত ভুল (ধ্রুবক পরীক্ষা অভিব্যক্তি, অভাব স্পেস, চলকে উদ্ধৃত রেজেক্স, সমর্থিত নয় [ ] অপারেটর), সাধারণত ভুলভাবে ব্যবহৃত কমান্ড (রেজেক্স পরিবেশে গ্লোবস, sudo এর পরিবর্তে পরিচালনা, ভুলভাবে ব্যবহৃত exec, অপ্রত্যক্ষ find প্রাধান্য), শুরু করা সিনট্যাক্স ভুল (= এর চারপাশে স্পেস, কমা-বিভক্ত অ্যারে, else if), শৈলী পরামর্শ (অপ্রয়োজনীয় cat, backticks বনাম $(), পরিচালনা ব্লক), ডেটা এবং টাইপিং ভুল (অ্যারে স্ট্রিংয়ে নির্ধারিত, printf আর্গুমেন্ট সংখ্যা মিলানো, সাবশেলে নির্ধারণ), সুদৃঢ়তা সমস্যা (বিপর্যস্ত rm, বিকল্প হিসাবে গ্লোবস, find -exec শেল ইনজেকশন), এবং স্হায়িত্ব চেতাবিজ্ঞপ্তি যা স্হায়িত্বের সাথে সমান হয়, যেমন চেকবাশিসমস।
ব্যবহার বিকল্পগুলি বর্ণিত: shellcheck.net এ স্ক্রিপ্ট পেস্ট করা, টার্মিনালে `shellcheck yourscript` চালানো, সম্পাদক সংযোগ (Vim এর ALE/Neomake/Syntastic, Emacs এর Flycheck/Flymake, Sublime এর SublimeLinter, Pulsar, VSCode, এবং অন্যান্য সম্পাদকের জন্য GCC সম্পর্কিত ভুল), এবং বিল্ড বা পরীক্ষা সুটে অন্তর্ভুক্ত করা একটি বের কোড ব্যবহার করে, Makefiles এবং Travis CI এর উদাহরণ সহ। README বলে যে এটি ট্রেভিস সিআই, কোডাসি, কোড ক্লাইমেট, কোড ফ্যাক্টর, সার্কেলসিআই, গিটহাব অ্যাকশন (মাত্র লিনাক্স), ট্রাঙ্ক কোড কোয়ালিটি, এবং কোডরবিটে প্রি-ইনস্টল করা হয়েছে, এবং অপ্রত্যাশিত বিল্ড ভেঙে যাওয়া থেকে বাঁচতে একটি নির্দিষ্ট সংস্করণ ব্যবহার করার পরামর্শ দেওয়া হয়েছে।
আউটপুট ফরম্যাটগুলি মানুষের জন্য পাঠযোগ্য টেক্সট সহ বা বিনা ANSI রং এ, JSON, CheckStyle-সম্পর্কিত XML, এবং GCC-সম্পর্কিত চেতাবিজ্ঞপ্তি রয়েছে, প্রকল্প ওয়েবে সংযোগ বিবরণ সহ।
ইনস্টলেশন বিভিন্ন প্যাকেজ ম্যানেজারের মাধ্যমে আবৃত হয়েছে (Cabal, Stack, apt, pacman, emerge, yum, dnf, pkg, Homebrew, MacPorts, zypper, eopkg, Chocolatey, winget, scoop, conda-forge, Snap, Nix, Flox), Docker ছবি (koalaman/shellcheck এবং shellcheck-alpine), প্রি-কম্পাইলড বাইনারি লিনাক্স x86_64/armv6hf/aarch64, macOS aarch64/x86_64, এবং উইন্ডোজ x86, এবং একটি প্রি-কমিট হুক কনফিগারেশন। সূত্র থেকে বিল্ড করার জন্য হাস্কেল এবং Cabal প্রয়োজন, এবং সংকলনের জন্য প্রায় 2GB র্যাম উল্লেখ করা হয়েছে, এবং পরীক্ষা `cabal test` দ্বারা চালানো হয়।
সমস্যাগুলি পরিবেশ চলক, কমান্ড লাইন, ব্যক্তিগতভাবে, বা ফাইলের মধ্যে সাধারণভাবে উপেক্ষা করা যেতে পারে। অবদানগুলি GitHub পুল রিকোয়েস্ট এর মাধ্যমে GPLv3 এর অধীনে গৃহীত হয়, এবং README প্রতিটি চেতাবিজ্ঞপ্তি কোডের জন্য দীর্ঘ বর্ণনা জন্য ওয়িকি এর দিকে ইঙ্গিত দেয় এবং shfmt এর জন্য ফরম্যাটিং, যা ShellCheck সামান্য বাধ্যতামূলক করে না।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.