Linux shell脚本 静态检查工具 shellcheck
简介
shellcheck
是一款实用的 shell脚本静态检查工具。
- 首先,可以帮助你提前发现并修复简单的语法错误,节约时间。每次都需要运行才发现写错了一个小地方,确实非常浪费时间。
- 其次,可以针对你当前不够完善不够健壮的写法,提供建议,帮助你提前绕开一些坑,避免等问题真的发生了才去调试处理。
在其介绍中,目标是针对所有用户的,从初学者到高手,都用得上
- 指出并澄清典型的初学者的语法问题,那通常会shell提供神秘的错误消息。
- 指出并澄清典型的中级的语义问题,这些问题会导致shell出现奇怪且反直觉的行为。
- 指出可能导致高级用户的脚本中,可能在未来某种情况下失败的陷阱。
在网页上使用
1 | 非常简单,在网页 `https://www.shellcheck.net` 上,贴入你的脚本,运行检查即可 |
在命令行中使用
1 | 下载后,在命令行中调用 `shellcheck yourscript` 即可 |
集成到编辑器中(推荐)
推荐将shellcheck
直接集成到日常编辑器中,这样就可以直接在编辑器中查看ShellCheck
建议,以最快速度发现并修复问题。
Vim
通过ALE
,Neomake
或Syntastic
进行集成Emacs
通过Flycheck
或Flymake
集成Sublime
通过SublimeLinter
Atom
通过Linter
VSCode
通过vscode-shellcheck
安装
Ubuntu
1 | $ apt-get install shellcheck |
Centos
1 | $ yum -y install epel-release |
Fedora
1 | $ dnf install ShellCheck |
使用方法
1 | $ shellcheck myscript.sh |
举例
1 |
|
看运行报错
1 | ./test.sh: line 4: if[ 0 -eq 0 ]: command not found |
只是告诉你在then附近有语法问题,到底什么问题呢?我们用shellcheck看看:
1 | $ shellcheck test.sh |
这么一看,就很清楚了,原来[前面少了空格。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 DOS/BAT!
评论