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

    文章

    7763

    浏览量

    92666
  • Shell
    +关注

    关注

    1

    文章

    373

    浏览量

    25164
  • vscode
    +关注

    关注

    1

    文章

    171

    浏览量

    8992

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    无图形界面模式下自定义检查工具的应用

    此前文章已介绍 ANSA 中的自定义检查工具。本文将探讨该功能在无图形界面(No-GUI)模式下的应用,旨在满足标准化工作流程的需求,适用于需要高度自动化的前处理场景。通过集成自定义检查
    的头像 发表于 11-30 14:13 277次阅读
    无图形界面模式下自定义<b class='flag-5'>检查</b><b class='flag-5'>工具</b>的应用

    关于系统链接脚本介绍

    一、队伍介绍 本篇为蜂鸟E203系列分享第四篇,本篇介绍的内容是系统链接脚本。 二、如何实现不同的下载模式? 实现三种不同的程序运行方式,可通过makefile的命令行指定不同的链接脚本
    发表于 10-30 08:26

    shell基本介绍及常用命令之shell基本介绍

    执行结果呈现给用户;同时Shell也是一种解释性的编程语言或者脚本语言,开发容易可以在短时间内完成功能强大又好用的脚本,可以在不同的系统上移植非常方便。Shell的特性不同的发行版本使
    发表于 09-28 09:05

    请问如何通过 PinView 和 lua 脚本检查和修改寄存器状态?

    如何通过 PinView 和 lua 脚本检查和修改寄存器状态?
    发表于 08-28 07:57

    如何通过 PinView 和 lua 脚本检查和修改寄存器状态?

    如何通过 PinView 和 lua 脚本检查和修改寄存器状态?
    发表于 08-25 06:59

    harmony-utils之TypeUtil,类型检查工具

    harmony-utils之TypeUtil,类型检查工具类 harmony-utils 简介与说明 [harmony-utils] 一款功能丰富且极易上手的HarmonyOS工具库,借助众多
    的头像 发表于 06-30 17:35 348次阅读

    Shell脚本入门指南

    Shell 是一块包裹着系统核心的壳,处于操作系统的最外层,与用户直接对话,把用户的输入, 解释给操作系统,然后处理操作系统的输出结果,输出到屏幕给与用户看到结果。
    的头像 发表于 06-03 10:47 987次阅读
    <b class='flag-5'>Shell</b><b class='flag-5'>脚本</b>入门指南

    概伦电子先进电路检查分析平台工具NanoSpice CCK介绍

    NanoSpiceCCK是一款先进的电路检查可靠性分析工具,支持晶体管级全面的ERC、SOA电路检查,适用于前后仿电路规则检查功能,能够快速提供准确、简洁的测试结果,方便设计人员及时发
    的头像 发表于 04-23 15:05 665次阅读
    概伦电子先进电路<b class='flag-5'>检查</b>分析平台<b class='flag-5'>工具</b>NanoSpice CCK<b class='flag-5'>介绍</b>

    树莓派新手必看!在树莓派上编写和运行 Shell 脚本

    在本教程中,我将讨论Shell脚本的基础知识、它们的用途以及如何在RaspberryPi上编写和运行Shell脚本。什么是Shell
    的头像 发表于 03-25 09:28 881次阅读
    树莓派新手必看!在树莓派上编写和运行 <b class='flag-5'>Shell</b> <b class='flag-5'>脚本</b>!

    【ELF 2学习板试用】命令行功能测试-shell脚本进行IO控制-红绿灯项目-实现开机起动

    接上文【ELF 2学习板试用】命令行功能测试-shell脚本进行IO控制-红绿灯项目 Linux 系统下 init 系统 大多数 Linux 发行版的 init 系统是和 System V 相兼容
    发表于 02-11 11:24

    【ELF 2学习板试用】命令行功能测试-shell脚本进行IO控制-红绿灯按钮项目

    通过MobaXterm工具进行SSH连接。* 脚本编写 使用shell脚本控制LED灯的亮灭。 接ssh 打开elfboard\\\\01-教程文档\\\\ELF 2开发板快速启动手
    发表于 02-06 15:39

    【ELF 2学习板试用】命令行功能测试-shell脚本进行IO控制-红绿灯项目

    * SSH连接 :通过MobaXterm工具进行SSH连接。* 脚本编写 :使用shell脚本控制LED灯的亮灭。 接ssh 脚本编写
    发表于 02-06 11:55

    Linux 服务器检查以及常用运维 shell 命令

    前言 今天带来的内容是在华为云主机 Flexus 云服务器 X 实例上操作,玩转一些 Linux 脚本以及安装 JDK。比如:检查系统环境、安装 JDK、使用 mkdir/touch 命令创建
    的头像 发表于 01-23 18:00 478次阅读
    Linux 服务器<b class='flag-5'>检查</b>以及常用运维 <b class='flag-5'>shell</b> 命令

    脚本美化高手之轻松实现文本颜色和背景定制的酷炫Shell技巧

    shell脚本中 echo 和 printf 都可以输出内容。示例1: echo -e "�33[43;35m david use echo say Hello World �33[0m
    的头像 发表于 12-06 10:38 1098次阅读
    <b class='flag-5'>脚本</b>美化高手之轻松实现文本颜色和背景定制的酷炫<b class='flag-5'>Shell</b>技巧

    Linux从零到精通:最简单的Shell脚本入门教程

    通过简单的命令和脚本,实现对系统的灵活控制和自动化管理。 shell脚本前言 shell脚本入门 she
    的头像 发表于 12-05 09:56 2305次阅读
    Linux从零到精通:最简单的<b class='flag-5'>Shell</b><b class='flag-5'>脚本</b>入门教程