Shellcheck 是一套用來檢查與分析 Shell script 的自動化檢查工具,
除了檢查撰寫風格以外,它還能夠找出 Shell script 裡有哪些指令可能存在執行風險,
並且提供對應的修改方式協助改善 Shell script 的品質。
Shellcheck 的使用方法很簡單,直接參考它本身的文件就很清楚,
而且作者有提供方便的 docker image 可以直接使用。
當 Shellcheck 發現 shell script 有任何風險時,
它除了顯示是哪一段指令會造成風險以外,
同時也會提供對應的檢查規範與文件網址,
讓你能夠進一步瞭解風險原因與修改方法。
目前 Shellcheck 支援的檢查規範有 SC1000 ~ SC2253 ,
大約 340 個,簡單列舉幾個常見情境:
- 偵測指令的相容性,像是 script 是用 /bin/sh 執行,但卻使用到 bash 專屬特性
- 偵測有風險的操作,例如使用 pipe 特性時是否會有不穩定性