shellcheck - 一个免费实用程序,用于在shell脚本中找到错误

时间:2020-03-21 11:47:11  来源:igfitidea点击:

ShellCheck将分析shell脚本,并立即显示shell脚本中是否存在任何错误。
它是用Haskell语言编写的,并在GPLv3下自由分布。

ShellCheck将分析脚本并执行以下操作:

  • 检查引用不正确,
  • 检查测试语句不正确,
  • 识别不正确的命令,
  • 识别语法错误,
  • 建议你提高剧本的风格,
  • 识别错字,
  • 提高脚本的稳健性,
  • 并检查其他一些问题。

我们不需要任何专家的帮助来纠正脚本中的错误。
只需打开shellcheck,粘贴脚本和繁荣!我们可以在线或者脱机使用shellcheck。

shell 检查在网上

我们可以通过访问Shellcheck在线检查脚本。

打开Web浏览器并转到以下链接。

将shell脚本粘贴为即时反馈。

注意:我没有写在此示例中使用的脚本。
我刚刚在线发现它来测试shellcheck。

或者,我们可以在Linux框中安装它,并在脱机的任何时间测试脚本。

在Linux上安装shellcheck

ShellCheck已打包为大多数Linux操作系统。
我们可以轻松地使用分发程序包管理器安装,如下所示。

关于Arch Linux及其衍生品:

$sudo pacman -S shellcheck

在Debian,Ubuntu,Linux Mint上,运行以下命令以安装它:

$sudo apt-get install shellcheck

在Rhel,CentOS启用EPEL存储库:

$sudo yum -y install epel-release

并安装shellcheck:

$sudo yum install ShellCheck

关于Fedora系统:

$sudo dnf install ShellCheck

OpenSUSE(TumbleWeed版),运行以下命令:

$sudo zypper in ShellCheck

对于其他分布,请选中官方安装页面。

在Linux上使用shellcheck查找shell脚本中的错误

安装后,打开终端并运行以下命令以测试脚本。

shellcheck <path_of_your_script>

例子:

$shellcheck myscript.sh

示例输出:

In myscript.sh line 1:
# This script displays the date, time, username and
^-- SC2148: Tips depend on target shell and yours is unknown. Add a shebang.

In myscript.sh line 6:
 echo "Your username is: `whoami` \n"
 ^-- SC2006: Use $(..) instead of legacy `..`.
 ^-- SC2028: echo won't expand escape sequences. Consider printf.

如上所述,ShellCheck指示第1行和第6行的建议。
请注意ShellCheck不会自动修复脚本中的错误。
相反,它将为shell脚本提供警告和建议。
此实用程序对于任何想要学习shell脚本的人都很有用。
只需编写脚本,在shellcheck中复制/粘贴代码并立即查找错误。