一款开源的shell脚本分析工具

本文介绍了开源工具ShellCheck,它能检查shell脚本中的常见错误,包括变量未引用、错误的语法、命令误用等,对初学者和高级用户都有很大帮助,提供安装链接和使用示例。
摘要由CSDN通过智能技术生成

大家好,今天分享一款开源工具--shellcheck。

shellcheck 简介

今天发现的一款神器,如果你日常会接触到shell脚本,或者说自己需要写一些shell脚本,那么强烈建议你用下这个工具。

shellcheck一个静态的shell脚本分析工具,可以判断脚本哪里有异常,哪里可以优化,并且会给出对应的解决办法。

一个简单的示例:

图片

这款工具不仅适用于初学者,对于中高级使用者帮助更大。

安装

github可以访问的直接到如下链接去下载就可以,目前支持多个终端,也有web可访问

https://github.com/koalaman/shellcheck

web访问地址:https://www.shellcheck.net/

使用方式:

shell脚本中的一些常见错误

  1. 常见错误引用

echo $1                           # Unquoted variables
find . -name *.ogg                # Unquoted find/grep patterns
rm "~/my file.txt"                # Quoted tilde expansion
v='--verbose="true"'; cmd $v      # Literal quotes in variables
for f in "*.ogg"                  # Incorrectly quoted 'for' loops
touch $@                          # Unquoted $@
echo 'Don't forget to restart!'   # Singlequote closed by apostrophe
echo 'Don\'t try this at home'    # Attempting to escape ' in ''
echo 'Path is $PATH'              # Variables in single quotes
trap "echo Took ${SECONDS}s" 0    # Prematurely expanded trap
unset var[i]                      # Array index treated as glob
  1. 常见错误条件语句

[[ n != 0 ]]                      # Constant test expressions
[[ -e *.mpg ]]                    # Existence checks of globs
[[ $foo==0 ]]                     # Always true due to missing spaces
[[ -n "$foo " ]]                  # Always true due to literals
[[ $foo =~ "fo+" ]]               # Quoted regex in =~
[ foo =~ re ]                     # Unsupported [ ] operators
[ $1 -eq "shellcheck" ]           # Numerical comparison of strings
[ $n && $m ]                      # && in [ .. ]
[ grep -q foo file ]              # Command without $(..)
[[ "$$file" == *.jpg ]]           # Comparisons that can't succeed
(( 1 -lt 2 ))                     # Using test operators in ((..))
[ x ] & [ y ] | [ z ]             # Accidental backgrounding and piping
  1. 误用的命令

grep '*foo*' file                 # Globs in regex contexts
find . -exec foo {} && bar {} \;  # Prematurely terminated find -exec
sudo echo 'Var=42' > /etc/profile # Redirecting sudo
time --format=%s sleep 10         # Passing time(1) flags to time builtin
while read h; do ssh "$h" uptime  # Commands eating while loop input
alias archive='mv $1 /backup'     # Defining aliases with arguments
tr -cd '[a-zA-Z0-9]'              # [] around ranges in tr
exec foo; echo "Done!"            # Misused 'exec'
find -name \*.bak -o -name \*~ -delete  # Implicit precedence in find
# find . -exec foo > bar \;       # Redirections in find
f() { whoami; }; sudo f           # External use of internal functions
  1. 初学者常见错误

var = 42                          # Spaces around = in assignments
$foo=42                           # $ in assignments
for $var in *; do ...             # $ in for loop variables
var$n="Hello"                     # Wrong indirect assignment
echo ${var$n}                     # Wrong indirect reference
var=(1, 2, 3)                     # Comma separated arrays
array=( [index] = value )         # Incorrect index initialization
echo $var[14]                     # Missing {} in array references
echo "Argument 10 is $10"         # Positional parameter misreference
if $(myfunction); then ..; fi     # Wrapping commands in $()
else if othercondition; then ..   # Using 'else if'
f; f() { echo "hello world; }     # Using function before definition
[ false ]                         # 'false' being true
if ( -f file )                    # Using (..) instead of test

资源获取:

(1)自己从 github 仓库拉取。

Linuxer_Martin
关注 关注
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
推荐一款颜值逆天且功能齐全的开源Shell工具
m0_64435718的博客
11-24 2638
前言 以前在windows上一直使用的SSH工具是XShell,后来转到mac平台,XShell没有mac版本。所以之前一直在找一款颜值高,功能齐全的可以作为日常使用的Shell工具。 我知道mac下也有不少优秀的Shell终端工具,比如SecureCRT,putty,Termius,FinalShell等。 我是从以下几个维度考虑的: 颜值要高,毕竟天天面对本就枯燥乏味的shell命令行,界面不好看会影响心情。心情也是生产力要素中很重要的一个因素,不知道你们认同么。 功能要全,什么文件上传,云端同步,主题
一款开源ShellCode生成引擎
11-29
1.本工具只支持x86 coff格式的文件 2.全局变量记得初始化,测试的时候发现有事全局变量没有初始化会获取不到 3.关闭MSVC的全局优化,开启全局优化时OBJ中的信息无法获取 4.不要在代码中使用c++一些特性,类似异常等,测试类时发现基本的类是可以满足的不要使用c++的一些库,切记
开源Webshell利用工具Altman
07-24
开源Webshell利用工具——Altman: Altman基于.Net4.0开发,兼容Mono,理论上可以运行在windows、linux和mac等平台。(windows和ubuntu平台已经详细测试过,完美运行)是的,一直工作在kali下的同学有福了,只要简单的配置一下,Altman就可以运行在kaili上了( 需要安装Mono(>=3.2.8)以及libgdiplus)Altman整个程序采
一款开源 Shell 工具,装逼神器,Github星标20k+!
Java知音
11-05 680
点击关注公众号,实用技术文章及时了解我要给大家介绍一个生产力工具 (装逼神器)Shell,它叫 Nushell,它是用 Rust 写的,安全性提高的同时,Bug 率也降低了,NuShell 专注于实现以下目标:创建具有现代感的灵活的跨平台 Shell允许你将命令行应用程序与可理解数据结构的 Shell 进行混合和匹配具有现代命令行应用程序提供的用户体验优化目前,NuShell 已经在 Github...
一款强大好用的Shell脚本项目,支持Bash,Sh、Dash、Ksh等,甚至可以在编辑器中直接用,程序员必备!(附源码)
最新发布
m0_68103752的博客
09-11 482
一个开源的静态分析工具,专门给shell脚本号号脉,找出其中的问题,比如语法错误、不规范的编码习惯、甚至是安全漏洞。
一款很火的智能化 Shell 工具多色彩优化命令显示结果可以替换系统默认的 Shell 工具,支持多平台免费开源使用
代码讲故事
12-11 1671
一款很火的智能化 Shell 工具多色彩优化命令显示结果可以替换系统默认的 Shell 工具,支持多平台免费开源使用。
推荐开源项目:sh - 现代化的Shell工具集合
gitblog_00032的博客
05-11 472
推荐开源项目:sh - 现代化的Shell工具集合 shA shell parser, formatter, and interpreter with bash support; includes shfmt项目地址:https://gitcode.com/gh_mirrors/sh1/sh 项目介绍 sh是一个强大的Go语言实现的Shell解析器、格式化器和解释器,支持POSIX Shell、...
ShellCheck:用于Shell脚本的静态分析工具-开源
04-26
ShellCheck是GPLv3工具,可为bash / sh shell脚本提供警告和可能的建议。 ShellCheck在您的Shell脚本中发现错误。 您可以cabal,apt,dnf,pkg或brew立即将其安装在本地。 ShellCheck突出显示并阐明了典型的初学者的...
ShellCheck,shell脚本静态分析工具___下载.zip
04-19
ShellCheck是一款强大的开源工具,专为检测和修复Bash和其他Unix shell脚本中的常见错误而设计。它在软件开发流程中扮演着静态代码分析器的角色,帮助程序员在执行脚本之前发现潜在的问题,从而提高脚本的可靠性和可...
CopyRightNoticeGenerator:GPL版权声明的Shell脚本和模板。-开源
05-14
有关如何使用“ here document”的示例在UNIX shell脚本中,“ here document”的惯用法可以使变量替换更加容易。 这个shell脚本取决于“ here document”表达式。 因此,您可以将其视为如何使用“此处文档”的示例...
Linux 下五个顶级的开源命令行 Shell
weixin_33726318的博客
07-09 170
这个世界上有两种 Linux 用户:敢于冒险的和态度谨慎的。 其中一类用户总是本能的去尝试任何能够戳中其痛点的新选择。他们尝试过不计其数的窗口管理器、系统发行版和几乎所有能找到的桌面插件。 另一类用户找到他们喜欢的东西后,会一直使用下去。他们往往喜欢所使用的系统发行版的默认配置。最先熟练掌握的文本编辑器会成为他们最钟爱的那一个。 作为一个使用桌面版和服务器版十五年之久的 Linu...
一款非常好用的shell工具
10-27
一款非常好用的shell工具,通过ssh连接远程服务器,也可以直接通过该shell工具实现linux系统对文件进行上传与下载,而不需要在linux上面配置tfp
脚本引擎 脚本解析器
04-22
author:ListenWind mail:gangyilovevc@163.com c 语言模式脚本解析器,脚本执行不是其目的。其作用是对PE文件进行编辑。暂且不论。 现在仅支持 if关键字、以及一些+-/* && || 等常规操作。 操作符支持优先级,但不支持括号。 今天调试成功,先放出来,让大家看看。高手飘过 对脚本的解析采用二叉树存储。详见代码。 2010.4.21增加while for += -= *= /= 支持。 2010.4.22 支持for的的死循环 以及其他变型。 for(;;) for(a=0;;) for(;;a+=3) 等 脚本从文件中得到。 支持单行、多行注释 测试字符串类型 希望对学习脚本的人有所帮助。 今天测试循环 发现效率实在令人郁闷。先不管了(感觉递归引起的) 代码照样没释放内存,存在内存泄露问题。
ShellEd(shell脚本编辑器)
11-03
ShellEd是一个Eclipse平台下的shell脚本编辑器.
推荐开源项目:Shell 脚本工具
gitblog_00031的博客
05-30 450
推荐开源项目:Shell 脚本工具库 chronocat 模块化的 Satori 框架 项目地址: https://gitcode.com/gh_mirrors/ch/chronocat 1、项目介绍 在软件...
推荐一款开源Shell装逼神器,真香!
weixin_45727359的博客
09-18 656
今天,我要给大家介绍一个生产力工具(装逼神器)Shell,它叫Nushell,它是用Rust写的,安全性提高的同时,Bug率也降低了,NuShell 专注于实现以下目标:1、创建具有现代感...
shell脚本工具
weixin_42348946的博客
02-20 197
#!/bin/bash #参数输入:开始结束日期;日期格式:20190101; #功能:跑历史数据脚本时给定时间内的每天日期等的获取 #author:Tengyue_hui #date:20200113 #函数介绍: ######01:时间范围内连续日期列,闭区间连续 ######02:时间范围内连续月初,闭区间连续 ######03:时间范围内连续月末,闭区间连续 ######04:时间...
Shell脚本编程基础与常用工具详解
1. 文本编辑器概述:介绍文本编辑器在Shell脚本编写中的基础作用,它们是编写和修改脚本的基本工具。 2. vi文本编辑器:重点讲解vi编辑器,它是Linux系统中最常用的文本编辑器之一,分为命令模式、插入模式和末行...
写文章

热门文章

  • 手机QQ怎样破解闪照 24452
  • Ubuntu20.04修改root用户密码 16758
  • Lua中使用毫秒精度时间的方法 9782
  • Ubuntu16.04如何卸载Amazon 9696
  • 手机链接WiFi 网络速度慢的5个原因及解决方法 9308

分类专栏

  • C++ 2篇
  • 游戏服务器 1篇
  • 编程网站 1篇
  • 人工智能 1篇
  • 工具配置 14篇
  • Linux 1篇
  • 网络安全 1篇
  • Python 1篇
  • 项目部署 1篇
  • 网路编程 5篇
  • 网络工程师 1篇
  • TCP 2篇
  • UDP 1篇
  • Ubuntu18.04 3篇
  • Sublime 2篇
  • Sublime3211 2篇
  • Skynet 1篇
  • 搜狗输入法 1篇
  • 加密 1篇
  • 中文乱码 2篇
  • Ubuntu故障解决 1篇
  • Ubuntu16.04软件安装 4篇
  • C++函数的实现 1篇
  • 企业安全 1篇
  • 数据安全 1篇
  • Qt Creator 2篇
  • C语言 4篇
  • cocos 1篇
  • 教程
  • WindowsServer 1篇

最新评论

  • 我学编程全靠B站了,真香(第一期)

    2301_81928713: 求侯捷老师课程

  • 我学编程全靠B站了,真香(第一期)

    水寒之: 求侯捷老师的课程

  • 盘点五种最常见加密算法!

    桃漫之: 图片很有趣表情包

  • 手把手教你搭建属于自己的服务器

    星云55: 在conf文件夹下面添加index.html,打开浏览器用访问还是原先的welcome nginx,要怎么解决呀?

  • 我学编程全靠B站了,真香(第一期)

    Pisrirw.: 求侯捷老师的课程表情包表情包表情包

大家在看

  • 多变量互信息——时空特征捕获
  • SQL注入
  • 基于SpringBoot+Vue的在线商城系统+万字论文+Mp4演示
  • IDM下载器 (Internet Download Manager) v6.42.2 中文免激活绿色版 1764
  • 【数据结构与算法】《红黑树的奥秘:自平衡之道》 396

最新文章

  • C++游戏服务器框架
  • 2024 年程序员必备网站更新
  • linux 的各种压缩文件命令
2024年3篇
2023年73篇
2022年2篇
2021年8篇
2020年4篇
2019年2篇
2018年13篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

深圳坪山网站建设公司新乡网站自然优化哪家售后好网站优化与管理百度文库梧州企业网站优化宝丰县网站seo优化排名汽车行业网站优化营销朔州网站优化推广镇江网站排名优化公司阜宁网站优化价格番禺网站收录优化崇明区企业官网网站优化案例网站seo优化哪家便宜浦东新区百度网站优化价格费用晋中网站目标关键词优化常州 网站优化新乡官网网站优化公司鹤壁网站整站优化乌海网站优化下城区网站排名优化服务网站排名优化推广蛇口网站seo优化哪里好同一行业做网站优化网站快速优化排名能信易速达网站优化个人工作室优化网站进入排名前50优化网站就属24金手指专业枣阳网站优化开发区网站优化价格seo国际网站优化师洛阳网站哪个优化最好有经验的网站优化排名香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

深圳坪山网站建设公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化