了解ShellCheck

由于工作需要了解了下ShellCheck,觉得不错。ShellCheck可以检测并修复Shell中语法问题。这里Mark下。

安装

首先ShellCheck是跨平台的,支持多个系统,同时很多App也都集成了,多种方式下都可以使用。

  1. 直接网页使用-ShellCheck Web

  2. Visual Studio Code插件ShellCheck

  3. JetBrains内置插件Shell Script支持,不需要额外安装。实际测试觉得并不是完整版ShellCheck功能。

  4. 命令行安装

    1. MacOS brew install shellcheck

    2. EPEL based distros

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

完整安装方式见官方介绍

Shell支持

需要注意ShellCheck静态分析并不支持所有Shell。

  1. 支持bash, sh, ksh, and zsh

  2. 不支持fishtcshcsh

  3. zshksh 的支持仅限于与 bash 兼容的地方。

功能

无论是手动触发还是自动触发,shellcheck的目的就是指出Shell中的语法错误。

https://static.1991421.cn/2024/2024-08-07-204617.jpeg

例子

Web端支持?

这里调研了下完全前端运行ShellCheck是否可行。

  1. 官方给出的Web例子本身是将Web输入的Shell发送到服务端执行的Shell Check。

  2. 完全的Web端运行,官方当前没有给予支持,但可以试试将Haskell转为WASM进行尝试,目前还无结论。

写在最后

对于日常编写Shell,推荐尝试在编辑器中安装该插件,可以避免一些Shell语法错误。

相关文档