shellcheck 用于shell脚本的静态分析工具

Posted by eye on 08-03,2024

shellcheck

ShellCheck - 一个shell脚本静态分析工具

ShellCheck 是一个 GPLv3 工具,可以为 bash/sh shell 脚本提供警告和建议:

ShellCheck 的目标是

  • 指出并澄清导致 shell 给出神秘错误消息的典型初学者语法问题。
  • 指出并澄清导致 shell 行为奇怪且违反直觉的典型中级语义问题。
  • 指出细微的警告、极端情况和陷阱,这些可能会导致高级用户的原本可以正常工作的脚本在未来情况下失败。

安装

在本地安装 ShellCheck 最简单的方法是通过您的包管理器。
在装有 Cabal 的系统上(安装到~/.cabal/bin):

cabal update
cabal install ShellCheck

在具有 Stack 的系统上(安装至~/.local/bin):

stack update
stack install ShellCheck

在基于 Debian 的发行版上:

sudo apt install shellcheck

在基于 Arch Linux 的发行版上:

pacman -S shellcheck

或者从 AUR获取无依赖的shellcheck-bin 。
在基于 Gentoo 的发行版上:

emerge --ask shellcheck

在基于 EPEL 的发行版上:

sudo yum -y install epel-release
sudo yum install ShellCheck

在基于 Fedora 的发行版上:

dnf install ShellCheck

在 FreeBSD 上:

pkg install hs-ShellCheck

在 macOS (OS X) 上使用 Homebrew:

brew install shellcheck

或者使用 MacPorts:

sudo port install shellcheck

在 OpenBSD 上:

pkg_add shellcheck

在 openSUSE 上

zypper in ShellCheck

或者使用 OneClickInstall - https://software.opensuse.org/package/ShellCheck
在 Solus 上:

eopkg install shellcheck

在 Windows 上(通过chocolatey):

C:\> choco install shellcheck

或者在 Windows 上(通过winget):

C:\> winget install --id koalaman.shellcheck

或者在 Windows 上 (通过scoop ):

C:\> scoop install shellcheck

来自conda-forge

conda install -c conda-forge shellcheck

来自 Snap 商店:

snap install --channel=edge shellcheck

来自 Docker Hub:

docker run --rm -v "$PWD:/mnt" koalaman/shellcheck:stable myscript
# Or :v0.4.7 for that version, or :latest for daily builds

或者,koalaman/shellcheck-alpine如果您想要扩展更大的基于 Alpine Linux 的映像,请使用。它的工作原理与常规 Alpine 映像完全相同,但已预装 shellcheck。