一个 Shell 脚本神器!

你好,我是坚持分享干货的 EarlGrey,翻译出版过《Python编程无师自通》、《Python并行计算手册》等技术书籍。

如果我的分享对你有帮助,请关注我,一起向上进击。

 
 
 
 
 
 
 
 
作者:MC猴哥

在 Linux 中,Linux Shell 确实是一个强大的工具,也是一种常见的自动化任务的解决方案。它可以用来自动执行一系列命令,处理文本,进行逻辑判断等等。

但是初学者在编写 Shell 脚本时总会遇到这样那样的错误,很大程度上会打击学习的信心,今天,民工哥就给大家分享一款脚本神器:ShellCheck!

68a6a24877bd0d0528bebcf736029160.png

一款 Linux Shell 神器,解决你不会写脚本的烦恼

ShellCheck 简介

ShellCheck 是一个强大的工具,可以帮助解决Linux Shell脚本编写中的烦恼。它是一个静态代码分析工具,专门针对Shell脚本语言进行检查。

  • Github地址:https://github.com/koalaman/shellcheck

功能特性
  • 错误检测与纠正:ShellCheck 能够发现并纠正脚本中的常见问题、潜在错误和最佳实践不一致。这包括语法错误、变量使用错误、命令调用错误、输入/输出错误等。

  • 代码风格:ShellCheck 它还能就代码风格给出建议,帮助提高脚本的可读性和一致性。

  • 最佳实践:ShellCheck不仅提供错误检测,还会给出最佳实践建议,如避免使用某些不推荐的命令或结构,推荐使用更安全、可维护的编写方式。

  • 跨平台支持:ShellCheck 支持在 Linux、macOS、Windows 等多种操作系统上运行,并支持各种常见的 Shell 解释器,如 Bash、Dash、Zsh 等。

  • 自定义规则:ShellCheck 允许用户定义自定义规则和过滤器,以适应特定项目或组织的需求。

  • 集成到编辑器中:ShellCheck 可以集成到各种文本编辑器和IDE中,如Vim、Emacs、Sublime、Atom和VSCode等,实现实时反馈和快速修复。

ShellCheck 安装

ShellCheck 的安装方法取决于你使用的Linux发行版。以下是几种常见发行版的安装步骤:

RHEL、CentOS和Fedora系统

首先需要启用EPEL Repo,然后才能使用yum安装ShellCheck。具体步骤如下:

yum -y install epel-release #启用EPEL Repo。
yum install ShellCheck -y #安装ShellCheck。
Debian和Ubuntu 系统

可以直接使用apt命令进行安装:

sudo apt install shellcheck #安装ShellCheck。
在线使用

你可以直接在网页 https://www.shellcheck.net上贴入你的脚本,运行检查。

f6aa8eaf18695d9d7748f7add00466ec.png
使用操作

安装完成后,你可以在命令行中使用ShellCheck来检查Shell脚本。只需在shellcheck指令后面加上Shell脚本的名称即可,例如:

shellcheck test.sh

ShellCheck 会显示一些警告和建议,帮助你改善脚本的质量和安全性。

50c6be2cafb650ebc7a8927698aea5d0.png
实际例子

让我们通过一个具体的例子来演示如何使用ShellCheck。

假设我们有一个简单的Shell脚本example.sh,内容如下:

#!/bin/bash  
  
echo "Hello, $1"  
  
if [ $1 = "World" ]; then  
    echo "You said hello to World!"  
fi

这个脚本接受一个参数,并打印出"Hello, "加上这个参数。如果参数是"World",则额外打印一条消息。

现在,我们想要使用ShellCheck来检查这个脚本是否存在问题。

打开终端,切换到包含example.sh脚本的目录,运行ShellCheck:

shellcheck example.sh

ShellCheck会输出分析结果,可能会包括类似以下的警告和建议:

In example.sh line 4:  
if [ $1 = "World" ]; then  
   ^-- SC2086: Double quote to prevent globbing and word splitting.  
  
For example:  
if [ "$1" = "World" ]; then

这条警告指出,在if语句中,变量$1没有被双引号包围,可能会导致一些问题。根据ShellCheck的建议,我们应该修改脚本如下:

#!/bin/bash  
  
echo "Hello, $1"  
  
if [ "$1" = "World" ]; then  
    echo "You said hello to World!"  
fi

现在,脚本更加健壮,因为它避免了由于未引用变量可能导致的潜在问题。

其它

集成到编辑器中的使用示例(以VSCode为例),如果你使用的是VSCode编辑器,并希望将ShellCheck集成到其中以实现实时反馈,你可以按照以下步骤操作:

  • 在VSCode中打开Extensions视图(通过点击左侧边栏上的方块图标或按Ctrl+Shift+X)。

  • 在搜索框中输入“shellcheck”并找到对应的扩展插件,例如“ShellCheck for Visual Studio Code”。

  • 点击“Install”按钮安装插件。

  • 安装完成后,重新加载VSCode或重启编辑器。

  • 打开你的Shell脚本文件。VSCode现在应该在后台使用ShellCheck来分析你的脚本,并在发现问题时显示警告或错误。

这些警告和错误通常会在代码编辑器的左侧边栏中通过波浪线或图标标记出来,你可以点击它们来查看更多详细信息或修复建议。

另外,如果你使用的是PyCharm这样的集成开发环境(IDE),你还可以在PyCharm中安装ShellCheck插件。这样,你就可以在IDE中直接检查Shell脚本,享受更方便的编码体验。

总结

总的来说,ShellCheck是一个强大的Shell脚本开发辅助工具,它可以帮助你更有效地编写、维护和调试Shell脚本,提高你的工作效率和脚本质量。

- EOF -

文章已经看到这了,别忘了在右下角点个“赞”和“在看”鼓励哦~

推荐阅读  点击标题可跳转

1、Python 项目工程化最佳实践

2、Python 可以比 C 还要快!

3、streamlit,一个超强的 Python 库

4、豆瓣8.9分的C++经典之作,免费送!

5、Python 3.12 版本有什么变化?

最近我开了一家淘宝店,名字叫【打破壁垒】,主打程序开发相关付费素材、工具的共享类商品,帮助大家降低试错和使用成本。欢迎大家关注。

2d3108cad163f3094255e4d3192a2817.jpeg

长按扫描下方二维码,然后点击页面中的【打开淘宝】,即可进入店铺:

4b23382e609b387b68d9f651985e29da.png

回复下方「关键词」,获取优质资源

回复关键词「 pybook03」,领取进击的Grey与小伙伴一起翻译的《Think Python 2e》电子版

回复关键词「书单02」,领取进击的Grey整理的 10 本 Python 入门书的电子版

👇关注我的公众号👇

告诉你更多细节干货

34cc54a76badd3037dce09e37cecb460.jpeg

欢迎围观我的朋友圈

👆每天更新所想所悟

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值