iis服务器助手广告
返回顶部
首页 > 资讯 > 操作系统 >linux中shellcheck怎么用
  • 529
分享到

linux中shellcheck怎么用

2023-06-15 13:06:10 529人浏览 八月长安
摘要

小编给大家分享一下linux中shellcheck怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!shellcheckshellcheck就是这样的一个工具。

小编给大家分享一下linuxshellcheck怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

shellcheck

shellcheck就是这样的一个工具。它可以在多种场景下使用,包括在线,命令行检查,编辑器配置,下面逐一介绍。

在线使用

顾名思义,它提供了一个在线的检查地址,https://www.shellcheck.net/,进入网址即可使用。

例如,你输入你的脚本内容:

#!/bin/sh  for n in {1..$RANDOM}  do    str=""    if (( n % 3 == 0 ))    then      str="fizz"    fi    if [ $[n%5] == 0 ]    then      str="$strbuzz"    fi    if [[ ! $str ]]    then      str="$n"    fi    echo "$str"  done

shell

它会给出错误提示或者建议:

Line 2:  for n in {1..$RANDOM}           ^-- SC2039: In POSIX sh, brace expansion is undefined.               ^-- SC2039: In POSIX sh, RANDOM is undefined.  Line 5:    if (( n % 3 == 0 ))       ^-- SC2039: In POSIX sh, standalone ((..)) is undefined.  Line 9:    if [ $[n%5] == 0 ]         ^-- SC2039: In POSIX sh, $[..] in place of $((..)) is undefined.         ^-- SC2007: Use $((..)) instead of deprecated $[..]                ^-- SC2039: In POSIX sh, == in place of = is undefined. Line 11:      str="$strbuzz"           ^-- SC2154: strbuzz is referenced but not assigned.  Line 13:    if [[ ! $str ]]       ^-- SC2039: In POSIX sh, [[ ]] is undefined.

怎么样,是不是很给力,每个可能的错误都提示了。新手写shell出现莫名的报错时,可以尝试使用奥。当然例子中很多并不是真的错误,而是某种写法不符合POSIX标准,这种情况也应该避免。

命令行使用

命令行安装也很简单(记得使用root权限),ubuntu下:

$ apt-get install shellcheck

Centos下:

$ yum -y install epel-release

Fedora下:

$ dnf install ShellCheck

使用方法也很简单了:

$ shellcheck myscript.sh

举个例子,下面的写法是新手最容易出错的地方之一:

//来源:公众号【编程珠玑】  //作者:守望先生  #!/bin/bash  if[ $# -eq 0 ]  then      echo "no para"  else      echo "$# para"  fi  exit 0

看运行报错:

./test.sh: line 4: if[ 0 -eq 0 ]: command not found  ./test.sh: line 5: syntax error near unexpected token `then'  ./test.sh: line 5: `then'

只是告诉你在then附近有语法问题,到底什么问题呢?我们用shellcheck看看:

$ shellcheck test.sh  In test.sh line 4:  if[ $# -eq 0 ]    ^-- SC1069: You need a space before the [.

这么一看,就很清楚了,原来[前面少了空格。

编辑器中使用

当然也可以把它安装到你熟悉的编辑器中,虽然它们本身都有语法高亮的功能,但是并没有直接的信息提示,安装shellcheck类工具,达到编写即提示的效果。

  •  EMacs, 可以使用 Flycheck.

  •  Sublime,可以使用 SublimeLinter.

  •  Atom,可以使用 Linter.

  •  vim ,可以使用ale或者syntastic

当然了,现代很多IDE都有这样检查功能,这里只说编辑器。

这里以syntastic为例,实际上它支持多种语言的语法检查。

安装过程:

安装pathogen.vim

$ mkdir -p ~/.vim/autoload ~/.vim/bundle && \  curl -LSso ~/.vim/autoload/pathogen.vim Https://tpo.pe/pathogen.vim

并且在vimrc文件中配置以下内容:

execute pathogen#infect()

安装 Install syntastic

cd ~/.vim/bundle && \  git clone --depth=1 https://GitHub.com/vim-syntastic/syntastic.git

测试安装情况

打开vim,输入以下内容

:Helptags

如果没有报错,说明安装正常。

在vimrc中配置以下内容:

set statusline+=%#warningmsg#  set statusline+=%{SyntasticStatuslineFlag()}  set statusline+=%*  let g:syntastic_always_populate_loc_list = 1  let g:syntastic_auto_loc_list = 1  let g:syntastic_check_on_open = 1

常用:

:Errors 显示错误面板  :lnext  到下一个错误  :lprevious 到上一个错误

更多安装详情也可以参考https://github.com/vim-syntastic/syntastic。

以上是官网推荐的安装方式,也可以在安装了Vundle(这是一种老旧的插件管理方式,你可以尝试vim-plug等其他插件管理工具)的前提下,通过在配置文件中加入:

Plugin 'scrooloose/syntastic'

打开vim输入:

:PluginInstall

即可安装。

使用效果:

shell检查:

linux中shellcheck怎么用

C语言语法检查:

linux中shellcheck怎么用

实际上它可以支持几乎所有常见编程语言的语法检查。

不知道vimrc文件在哪里?

打开vim,输入:

:version

就可以看到啦:

 system vimrc file: "$VIM/vimrc"       user vimrc file: "$HOME/.vimrc"   2nd user vimrc file: "~/.vim/vimrc"        user exrc file: "$HOME/.exrc"    system gvimrc file: "$VIM/gvimrc"      user gvimrc file: "$HOME/.gvimrc"  2nd user gvimrc file: "~/.vim/gvimrc"      system menu file: "$VIMRUNTIME/menu.vim"

它们区别在于生效范围不一样,对于用户的vimrc,自然只是对特定用户生效。

以上是“linux中shellcheck怎么用”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网操作系统频道!

--结束END--

本文标题: linux中shellcheck怎么用

本文链接: https://www.lsjlt.com/news/280513.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • linux中shellcheck怎么用
    小编给大家分享一下linux中shellcheck怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!shellcheckshellcheck就是这样的一个工具。...
    99+
    2023-06-15
  • Linux中!怎么用
    小编给大家分享一下Linux中!怎么用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!执行上一条命令例如,在执行完上面一条命令后,可以使用下面的方式再次执行上一条命令:$ whereis bas...
    99+
    2023-06-16
  • linux中怎么用PiShrink
    小编给大家分享一下linux中怎么用PiShrink,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!安装 PiShrink要在 Linux 机器上安装 PiShri...
    99+
    2023-06-16
  • linux中Hegemon怎么用
    小编给大家分享一下linux中Hegemon怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Hegemon 是什么?Hegemon 是一个正在开发中的模块化系...
    99+
    2023-06-16
  • linux中tmux怎么用
    小编给大家分享一下linux中tmux怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!tmux 是终端复用器terminal multiplexer的缩写,它...
    99+
    2023-06-16
  • Linux中PING怎么用
    这篇文章主要为大家展示了“Linux中PING怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux中PING怎么用”这篇文章吧。PING(Packet InterNet  G...
    99+
    2023-06-16
  • linux中grep怎么用
    这篇文章主要为大家展示了“linux中grep怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“linux中grep怎么用”这篇文章吧。在linux中,grep命令用于查找文件里符合条件的字符...
    99+
    2023-06-22
  • linux中curl怎么用
    这篇文章将为大家详细讲解有关linux中curl怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。什么是 curl curl 是用于构造 HTTP 请求的命令行工具。我喜欢使用 curl,因为它能够很轻...
    99+
    2023-06-16
  • linux中DomTerm怎么用
    这篇文章主要介绍了linux中DomTerm怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。DomTerm  是一款现代化的终端模拟器,它使用浏览器引擎作为 “...
    99+
    2023-06-16
  • linux中rtop怎么用
    小编给大家分享一下linux中rtop怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!rtop 是一个基于 SSH 的直接的交互式远程系统监控工具,它收集并显...
    99+
    2023-06-16
  • Linux中systemctl怎么用
    这篇文章给大家分享的是有关Linux中systemctl怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。systemd是Linux系统最新的初始化系统(init),作用是提高系统的启动速度,尽可能启动较少的进...
    99+
    2023-06-27
  • Linux中const怎么用
    这篇文章将为大家详细讲解有关Linux中const怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、const基础如果const关键字不涉及到指针,我们很好理解,下面是涉及到指针的情况:int&nb...
    99+
    2023-06-16
  • Linux中RPM怎么用
    这篇文章主要介绍了Linux中RPM怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。rpm命令是RPM软件包的管理工具。rpm原本是Red Hat Linux发行版专门用...
    99+
    2023-06-28
  • Linux中tcpreplay怎么用
    这篇文章将为大家详细讲解有关Linux中tcpreplay怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Linux常用命令tcpreplay是一种pcap包的重放工具,它可以将用ethreal、wi...
    99+
    2023-06-28
  • Linux中make怎么用
    这篇文章将为大家详细讲解有关Linux中make怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Linux常用命令make命令 是GNU的工程化编译工具,用于编译众多相互关联的源代码文件,以实现工程化...
    99+
    2023-06-28
  • linux中for怎么用
    这篇文章主要为大家展示了“linux中for怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“linux中for怎么用”这篇文章吧。在linux中,for命令用于创建一个循环,该循环通过一系列...
    99+
    2023-06-22
  • linux中expect怎么用
    这篇文章主要为大家展示了“linux中expect怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“linux中expect怎么用”这篇文章吧。在linux中,expect是一个自动化交互套件...
    99+
    2023-06-22
  • Linux中MySQL怎么用
    这篇文章将为大家详细讲解有关Linux中MySQL怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。show databases;2.use mysql转换database3.show tables 显...
    99+
    2023-06-03
  • linux中cgroups怎么用
    这篇文章主要介绍了linux中cgroups怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。从 2.6.24 版本开始,linux 内核提供了一个叫做 cgroups(控...
    99+
    2023-06-13
  • linux中kvm怎么用
    这篇文章主要为大家展示了“linux中kvm怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“linux中kvm怎么用”这篇文章吧。一、kvm的安装及状态查看1、安装软件yum -y...
    99+
    2023-06-09
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作