使用 sh -x 进行 shell 脚本调试

转载请注明出处:

sh -x 命令的执行,会将shell 命令的每一个执行步骤进行打印,可以查看到 整个命令或脚本的执行过程的 debug。

sh -n 只读取shell脚本,检测语法错误,但不实际执行

使用上面两个命令可以帮助我们编写shell脚本,使用示例:

  1. 从指定目录的所有jar包中寻找 包含 log4j 与 fastjson 的jar文件,使用 sh -x 查看执行的每个过程
find /opt/skywalking/ -name "*.jar"|grep -v "jvm"|awk '{print "jar -tvf " $1}'|sh -x|egrep "log4j-|fastjson-"

使用 sh -x 进行 shell 脚本调试
  1. 使用 sh -x shell.sh 查看脚本执行的整个过程

脚本内容如下:

#!/bin/bash
sum=0
for value in cat console.log|grep 'filterStr'|awk '{print $2}'
        do
                sum=$(($sum+$value))
        done
echo "总共耗时:"$sum

totalCount=cat console.log|grep 'filterStr'|awk '{print $2}'|wc -l
echo "总共请求时间为:"$totalCount

#计算请求的平均时间
avageTime=$(($sum/$totalCount))
echo "平均请求响应时间为: "$avageTime

使用 sh -x test.sh 执行脚本如下:

使用 sh -x 进行 shell 脚本调试

Original: https://www.cnblogs.com/zjdxr-up/p/16146788.html
Author: 香吧香
Title: 使用 sh -x 进行 shell 脚本调试

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/529597/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 设计模式——中介者模式

    中介者模式定义 用一个中介对象封装一系列的对象交互,中介者使各对象不需要显示地相互作用,从而使其耦合松散,而且可以独立地改变它们之间的交互。 Mediator抽象中介者角色 抽象中…

    Linux 2023年6月7日
    088
  • Linux系统Yum中的$releasever和$basearch变量

    Yum的配置文件中包含大量的$releasever和$basearch变量,那么他们的取值是什么呢? 为什么要折腾这个玩意呢?有点地方的网络是私有化网络,内部有大量的Linux服务…

    Linux 2023年6月8日
    090
  • MediaFire 网盘队列下载脚本

    MediaFire是一个国外的网盘。通常情况下,我们可以用浏览器下载MediaFire的文件,但是不能同时下载过多文件,只能几个几个地慢慢手动下载,比较费时间,所以我设计了这样一个…

    Linux 2023年6月6日
    0138
  • 符号转义解决SSH远程命令执行的问题

    场景:服务器 A B C D 上存在一些日志,日志中的每行包含了日期、日志级别、日志信息等。现在要求从跳板机 X 获取这四台服务器上的数据,并通过规则(如日期)筛选,汇总到一个文件…

    Linux 2023年6月14日
    096
  • Redis持久化原理 — RDB与AOF详细解释

    一、持久化的作用 持久化(Persistence),即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。持久化Redis所有数据保持在内存中,对数据的更新将异步地保存…

    Linux 2023年5月28日
    074
  • LeetCode-459. 重复的子字符串

    题目来源 题目详情 给定一个非空的字符串 s ,检查是否可以通过由它的一个子串重复多次构成。 示例 1: 输入: s = “abab”输出: true解释:…

    Linux 2023年6月7日
    0126
  • Golang 实现 Redis(6): 实现 pipeline 模式的 redis 客户端

    本文是使用 golang 实现 redis 系列的第六篇, 将介绍如何实现一个 Pipeline 模式的 Redis 客户端。 通常 TCP 客户端的通信模式都是阻塞式的: 客户端…

    Linux 2023年5月28日
    087
  • VirtualBox安装Ubuntu教程

    镜像下载、域名解析、时间同步请点击阿里云开源镜像站 准备工作 virtualBox可在官网下载,Ubuntu镜像可在 阿里云下载,选择对应电脑位数的镜像。 开始安装 1、点击&#8…

    Linux 2023年5月27日
    0187
  • 常见Git命令汇总

    前言 最近,有朋友私信让我就 git 使用做篇文章分享,分享一下我在日常工作中是如何使用 git的。我当场就收费两包辣条,最后讨价还价,…

    Linux 2023年6月13日
    099
  • 2021年3月-第02阶段-前端基础-Flex 伸缩布局-移动WEB开发_流式布局

    移动web开发流式布局 1.0 移动端基础 1.1 浏览器现状 PC端常见浏览器:360浏览器、谷歌浏览器、火狐浏览器、QQ浏览器、百度浏览器、搜狗浏览器、IE浏览器。 移动端常见…

    Linux 2023年6月8日
    0129
  • Linux防火墙——iptables简介

    一、防火墙相关概念 这里描述了一些相关的概念。 [En] Some related concepts are described here. 从逻辑上讲,防火墙可以分为主机防火墙和…

    Linux 2023年5月27日
    0104
  • 容器的监控:使用cAdvisor,weavescope监控容器

    一.系统环境 二.前言 三.容器监控的原理 四.使用docker stats监控容器 五.部署cadvisor监控容器 六.部署weavescope监控容器 一.系统环境 服务器版…

    Linux 2023年6月7日
    0131
  • xshell/bash/zsh 等终端鼠标滚轮乱码问题(转)

    终端上滚动鼠标,有可能不是预期的滚屏,而是出现一些乱码字符 解决方法:输入 reset命令 回车即可 注意: clear或者 ctrl+l是清屏命令,在此情况下无效。 转自: xs…

    Linux 2023年5月28日
    0177
  • 文件的压缩与打包

    文件的压缩与打包 常用文件拓展名 *.tar.gz tar程序打包的文件,并且经过gzip的压缩 *.tar.bz2 tar程序打包的文件,并且经过bzip2的压缩 tar 命令,…

    Linux 2023年6月11日
    090
  • redis重点是 dir 的默认配置一定要改

    find / -name dump.rdb 发现有两个dump文件,这两个文件目录不一致,问题在于 redis.conf 文件属性dir,默认配置是dir ./ 表示在哪启动ser…

    Linux 2023年5月28日
    085
  • 介绍一种使用poweshell 监控的方式

    本篇将使用PowerShell脚本对SQL Server 的关键指标进行监控. 以下,用数据库空间容量为例,实现一下逻辑: 一、建表 为每台服务器创建一个表,用于记录服务器各个数据…

    Linux 2023年5月28日
    0103
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球