แนะนำ ShellCheck
- ShellCheck เป็นเครื่องมือสำหรับค้นหาบั๊กในเชลล์สคริปต์
- สามารถติดตั้งได้ในเครื่องผ่าน cabal, apt, dnf, pkg, brew
- เมื่อนำสคริปต์มาวาง ShellCheck จะแสดงผลการวิเคราะห์
คุณสมบัติของ ShellCheck
- ShellCheck ใช้งานได้อย่างอิสระภายใต้ไลเซนส์ GPLv3
- มีเอกสารอยู่ใน ShellCheck Wiki และสามารถดูซอร์สโค้ดได้บน GitHub
- โดยมากถูกแพ็กเกจไว้แล้วในดิสทริบิวชันหรือแพ็กเกจเมเนเจอร์ส่วนใหญ่
- รองรับเป็นลินเตอร์แบบบูรณาการในเอดิเตอร์หลัก ๆ และสามารถตรวจสอบโค้ดใน GitHub repository โดยอัตโนมัติผ่าน CodeClimate, Codacy, CodeFactor
- เขียนด้วยภาษา Haskell จึงเหมาะกับผู้ใช้ที่สนใจภาษานี้
คำขอบคุณ
- ขอขอบคุณเป็นพิเศษต่อ GitHub Sponsors: Gitpod, Mercedes-Benz, BashSupport Pro, per1234, WhitewaterFoundry, cavcrosby, dcminter, photostructure, Cronitor, djdefi, steve-chavez เป็นต้น
ความเห็นของ GN⁺
- ประเด็นสำคัญที่สุดของบทความนี้คือ ShellCheck เป็นเครื่องมือที่มีประโยชน์สำหรับการค้นหาบั๊กในเชลล์สคริปต์
- ShellCheck ใช้งานฟรี รองรับหลายแพลตฟอร์มและเอดิเตอร์ และใช้งานง่าย ซึ่งอาจน่าสนใจสำหรับผู้คน
- โดยเฉพาะอย่างยิ่ง การสนับสนุนจากชุมชนโอเพนซอร์สและการที่พัฒนาด้วยภาษา Haskell อาจทำให้ซอฟต์แวร์นี้น่าดึงดูดสำหรับนักพัฒนา
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
ข้อควรระวังในการเขียนสคริปต์
-u(nounset) เพื่อให้เกิดข้อผิดพลาดเมื่อมีการใช้ตัวแปรที่ยังไม่ได้ประกาศ โดยมีข้อยกเว้นคือกรณีที่การขยายอาร์เรย์ทำให้อาร์เรย์ว่างถูกมองว่าเป็น unbound-n(noexec) เพื่อป้องกันการรันคำสั่งจริง-e(errexit) ก็มีประโยชน์เช่นกัน แต่ต้องระวังว่ามีเพียงคำสั่ง "naked" ที่ล้มเหลวเท่านั้นที่จะทำให้สคริปต์จบการทำงาน จึงมักเลือกเพิ่ม|| fail "..."ต่อท้ายคำสั่งเพื่อหลีกเลี่ยงปัญหานี้การค้นพบช่องโหว่ในเชลล์สคริปต์
$ENV_VARได้ ก็สามารถฉีดโค้ดผ่าน$((1 + ENV_VAR))ได้Shellcheck และ strictbash
การกล่าวถึง Shellcheck
การใช้ Haskell และ Turtle
การใช้ Shellcheck และ linter
Bash language server
ผลด้านการเรียนรู้จาก Shellcheck
คำแนะนำให้ใช้ Bach
Shellcheck กับการจัดการ source/import