Shell脚本检查工具ShellCheck
05/21
本文最后更新于
2024年05月21日,已超过
284天没有更新。如果文章内容或图片资源失效,请留言反馈,我会及时处理,谢谢!
ShellCheck是一个用于bash/sh shell脚本的静态分析工具,可以辅助检查脚本语法错误,给出建议增强脚本健壮性。
项目地址:https://github.com/koalaman/shellcheck
作者创建了一个在线网站 https://www.shellcheck.net/ ,你可以直接将代码贴到编辑框中进行在线检查。
当然你也可以将工具部署到本地计算机使用。
本地部署
联网安装
最简单的方式是使用包管理器安装。基本上各种平台都能直接安装,比如笔者的archlinux机器:
$ sudo pacman -S shellcheck
安装成功后,测试脚本
$ shellcheck test.sh
离线安装
在Github上直接下载对应平台预编译好的可执行文件,解压缩到本地即可使用。
代码编辑器集成
可以根据官方说明安装VIM
、VSCODE
等编辑器插件直接在编译器中使用。
使用示例
示例一
$ cat test.sh
#!/bin/bash
cat $0
for i in {1..10}
do
echo $i
done
$ shellcheck test.sh
shellcheck输出内容如下:
可以看出,shellcheck使用的关键字是info
,说明脚本本身没有语法错误,但给出了一些建议使脚本更加健壮。
示例二
再看一个包含警告和错误的脚本。
$ cat test1.sh
#!/bin/bash
var1= 42
var2 = 70
echo $(($var1+$var2))
$ shellcheck test1.sh
shellcheck输出内容如下:
首先是warning
信息,第3行变量赋值有一个空格,实际上是不对的。
第4行给出error
信息,变量与=之间不能有空格,语法错误。
第5行意图是输出两个变量的和,但(())
内变量不需要使用$
符合。

