0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Shell脚本检查工具ShellCheck介绍

roborobo_0706 来源:WetWan 2023-12-27 13:43 次阅读

ShellCheck是一个用于bash/sh shell脚本的静态分析工具,可以辅助检查脚本语法错误,给出建议增强脚本健壮性。

作者创建了一个在线网站 https://www.shellcheck.net/ ,你可以直接将代码贴到编辑框中进行在线检查。

c084337a-a478-11ee-8b88-92fbcf53809c.png

当然你也可以将工具部署到本地计算机使用。

本地部署

联网安装

最简单的方式是使用包管理器安装。基本上各种平台都能直接安装,比如笔者的archlinux机器:

$sudopacman-Sshellcheck

安装成功后,测试脚本

$shellchecktest.sh

离线安装

在Github上直接下载对应平台预编译好的可执行文件,解压缩到本地即可使用。

c09ec4b0-a478-11ee-8b88-92fbcf53809c.png

代码编辑器集成

可以根据官方说明安装VIM、VSCODE等编辑器插件直接在编译器中使用。

使用示例

示例一

$cattest.sh
#!/bin/bash

cat$0

foriin{1..10}
do
echo$i
done
$shellchecktest.sh

shellcheck输出内容如下:

c0adc1ae-a478-11ee-8b88-92fbcf53809c.png

可以看出,shellcheck使用的关键字是info,说明脚本本身没有语法错误,但给出了一些建议使脚本更加健壮。

示例二

再看一个包含警告和错误的脚本。

$cattest1.sh
#!/bin/bash

var1=42
var2=70
echo$(($var1+$var2))

$shellchecktest1.sh

shellcheck输出内容如下:

c0bf2a70-a478-11ee-8b88-92fbcf53809c.png

首先是warning信息,第3行变量赋值有一个空格,实际上是不对的。

第4行给出error信息,变量与=之间不能有空格,语法错误。

第5行意图是输出两个变量的和,但(())内变量不需要使用$符合。







审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 计算机
    +关注

    关注

    19

    文章

    6649

    浏览量

    84534
  • Shell
    +关注

    关注

    1

    文章

    358

    浏览量

    22902
  • vscode
    +关注

    关注

    1

    文章

    146

    浏览量

    7371

原文标题:Shell脚本检查工具ShellCheck

文章出处:【微信号:ExASIC,微信公众号:ExASIC】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    100个Linux Shell脚本总结

    不知道大家有没有发现,会编写shell脚本的运维,工资不会低,并且他的工作会很轻松!今天浩道跟大家分享每一个Linux运维应知必会的100个shell脚本,虽然你工作中可能用不上,但是
    的头像 发表于 12-05 09:28 497次阅读

    shell并行执行java脚本

    Shell是一种用于解释执行命令的脚本语言,而Java是一种跨平台的面向对象编程语言。在某些情况下,我们可能需要在Shell脚本中执行Java程序。本文将
    的头像 发表于 11-08 10:29 275次阅读

    shell并行调用脚本

    Shell脚本中,可以使用一些技巧来实现并行调用。以下是几种常见的方法: 使用后台进程:在Shell脚本中,可以使用"command2 上述脚本
    的头像 发表于 11-08 10:23 426次阅读

    如何利用shell进行脚本程序的设计?

    利用Shell进行脚本程序的设计可以按照以下步骤进行: 选择Shell解释器:在Unix和Linux系统中,通常会默认安装一个或多个Shell解释器,其中最常见且功能强大的是Bash(
    的头像 发表于 11-08 10:17 288次阅读

    shell脚本基本命令

    Shell脚本是一种可执行文件,它包含了一组用某种特定语言编写的命令,这些命令可以被解释器(如bash)执行。以下是一些常见的shell脚本基本命令: echo命令:用于输出字符串。例
    的头像 发表于 11-08 10:08 708次阅读

    常见的一些shell script规则

    shell script对于硬件嵌入式行业从业者来说应该是一个常用的工具,它是程序化脚本,是一种自动化管理linux的好工具了,所以对于嵌入式开发的工程师来说也是一个非常实用的
    的头像 发表于 11-07 10:29 262次阅读
    常见的一些<b class='flag-5'>shell</b> script规则

    BASH shell脚本篇—文件处理介绍

    在Bash Shell脚本中,可以使用多种方法来对文件进行操作,包括读取文件或写入文件。
    的头像 发表于 10-23 16:51 297次阅读

    Linux中常用的Shell脚本示例

    当谈论一线运维工作中的常用 Shell 脚本时,以下是一些实用的例子。
    发表于 09-08 09:42 465次阅读

    为什么shell脚本中执行命令要加exec?这个exec有什么作用呢?

    正常情况下,如果我们想要在shell脚本中执行一个命令,我们只用将该命令原样写到这个shell脚本中就好了。
    的头像 发表于 08-21 09:10 1293次阅读
    为什么<b class='flag-5'>shell</b><b class='flag-5'>脚本</b>中执行命令要加exec?这个exec有什么作用呢?

    Linux shell脚本分享

    今天浩道跟大家分享几个Linux运维中常用到的shell脚本
    发表于 07-18 09:53 457次阅读
    Linux <b class='flag-5'>shell</b><b class='flag-5'>脚本</b>分享

    嵌入式Linux入门(五、Shell脚本编程上:认识Shell脚本

    大家好,是矜辰所致,嵌入式 Linux入 门第五课,本课开始简单学习一下 Shell 脚本编程。
    的头像 发表于 07-13 16:10 1010次阅读
    嵌入式Linux入门(五、<b class='flag-5'>Shell</b><b class='flag-5'>脚本</b>编程上:认识<b class='flag-5'>Shell</b><b class='flag-5'>脚本</b>)

    分享249个拿来即用的shell脚本

      由于脚本案例太多,在此仅展示部分,完整版领取方式请见文末       249个拿来即用的shell脚本!   这249个Shell脚本
    的头像 发表于 07-07 10:52 736次阅读
    分享249个拿来即用的<b class='flag-5'>shell</b><b class='flag-5'>脚本</b>

    Linux Shell脚本经典案例分享

    ​ 作为一名 Linux 运维工程师,会写好的脚本不仅能提高工作效率,还能有更多的时间做自己的事。最近在网上冲浪的时候,发现大家对Shell脚本都有“心结”,要么觉得自己写出来不好看,要么根本无从下手。 下面分享249个真实
    发表于 06-16 14:03 517次阅读
    Linux <b class='flag-5'>Shell</b><b class='flag-5'>脚本</b>经典案例分享

    shell脚本本身自带的命令详解

    除了以文件形式保存在/usr/bin下面的命令,shell脚本中还可以使用shell本身自带的命令,即内置命令
    的头像 发表于 05-23 09:32 609次阅读
    <b class='flag-5'>shell</b><b class='flag-5'>脚本</b>本身自带的命令详解

    如何快速入门Shell脚本呢?

    Shell 语言作为类 Unix 系统的原生脚本,有着非常实用的价值。
    的头像 发表于 05-22 11:51 415次阅读