又一款强大好用的Shell脚本项目,支持Bash,Sh、Dash、Ksh等,甚至可以在编辑器中直接用,程序员必备!(附源码)

作为一个程序员,肯定经常都要和shell脚本打交道,Shell脚本可以帮我们自动化各种任务,但也经常有格式错误、拼写错误、逻辑错误等等麻烦,而且它不会告诉你错在哪里!

今天就给大家分享一个超级实用的开源项目 - ShellCheck,好比我们在漆黑的房间里找钥匙,而ShellCheck就是我们的手电筒。

图片

简介

ShellCheck 是一个开源的静态分析工具,专门给shell脚本号号脉,找出其中的问题,比如语法错误、不规范的编码习惯、甚至是安全漏洞。

它不仅支持Bash,还支持Sh、Dash、Ksh等等。你可以用它来检查代码,也可以集成到CI/CD流水线中,甚至可以在编辑器中直接用。

它就像一位严格的老师,让我们的脚本远离错误和不良习惯。

图片

主要的功能特色有:

  • 多shell支持:不管是 Bash 还是其他 shell 脚本,它都能帮你检查。

  • 静态分析:不用运行脚本,它就能帮你抓出隐藏在角落里的小问题。

  • 具体错误提示:它会告诉你问题具体出在哪一行,并给出详细解释和修正建议。

  • CI/CD集成:可以把ShellCheck集成到你的代码提交流程中,避免低级错误流入生产环境。

  • 编辑器支持:支持很多编辑器插件支持,可以在VSCode、Sublime、Vim、Emacs中直接用。

  • 多平台支持:Linux、macOS、Windows都可以运行使用。

图片

快速安装

安装方法有很多,比较简单的方式是使用包管理器,如:

# 对于Debian/Ubuntu用户:
sudo apt-get install shellcheck

# 对于MacOS用户:
brew install shellcheck


#windows系统(使用 chocolatey):

choco install shellcheck

或者官方提供了一个在线的demo供我们快速体验:

https://www.shellcheck.net/#

项目使用体验

安装好后我们就可以开始使用了。

假设我们有一个简单的脚本example.sh

#!/bin/bash

# 打印用户输入
echo "User input is: $1"

# 创建目录,如果不存在
mkdir /tmp/myfolder

# 切换到新目录
cd /tmp/myfolder

# 列出目录内容
ls -l

用ShellCheck检查一下,它可能会告诉你:

图片

Line 10:
cd /tmp/myfolder
^-- SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.

Did you mean: (apply this, apply all SC2164)
cd /tmp/myfolder || exit

$

直接指出了shell中存在的问题,并给了修改建议。

最后修改的shell为

#!/bin/bash

# 打印用户输入
echo "User input is: $1"

# 创建目录,如果不存在
mkdir /tmp/myfolder

# 切换到新目录
cd /tmp/myfolder || exit

# 列出目录内容
ls -l

图片

是不是非常的酷!!

当然,ShellCheck 也不是能够识别所有的错误,主要有如错误引用、错误的条件声明等等,大家可以自行去项目主页进行查看。

图片

图片

体验下来,不得不说,ShellCheck确实一个不可多得的Shell脚本开发辅助工具,它能够帮助你更有效地编写、维护和调试Shell脚本,提高我们的工作效率和脚本质量。

关于该项目的更多细节,感兴趣的可以到项目地址查看:

Github地址:https://github.com/koalaman/shellcheck
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值