linux脚本调试工具,linux脚本调试-bashdb安装及调试-程序员宅基地

技术标签: linux脚本调试工具  

Shell本身并没有提供更好的排错工具,为了更加精细地调试Shell脚本,我们可以借助第三方工具bashdb。这是一个类似于GDB的脚本调试软件,小巧而强大,具有这只断点、单步执行、观察变量等功能。下载时请根据所使用的bash版本选择相应的bashdb,否则会提示因为版本不符合而无法安装。

如下查看bash版本:

# bash --version

GNU bash, version 4.2.45(1)-release (x86_64-redhat-linux-gnu)

Copyright (C) 2011 Free Software Foundation, Inc.

License GPLv3+: GNU GPL version 3 or later

This is free software; you are free to change and redistribute it.

There is NO WARRANTY, to the extent permitted by law.

可到https://sourceforge.net/projects/bashdb/files/bashdb/4.2-0.92/选择相应的版本

例如:

#下载软件

wget --no-check-certificate https://nchc.dl.sourceforge.net/project/bashdb/bashdb/4.2-0.92/bashdb-4.4-0.92.tar.gz

#第二步:解压并进入目录

tar -zxvf 4.4-0.92.tar.gz

cd 4.4-0.92

#第三步:配置及编译安装

./configure

make && make install

安装完成后,我们便可以在终端使用bashdb命令了,改命令典型用法如下:

# bashdb --debug 脚本名

参数说明:

一、列出代码和查询代码类:

l 列出当前行以下的10行

- 列出正在执行的代码行的前面10行

. 回到正在执行的代码行

/pat/ 向后搜索pat

?pat?向前搜索pat

二、Debug控制类:

h 帮助

help 命令 得到命令的具体信息

q 退出bashdb

x 算数表达式 计算算数表达式的值,并显示出来

!! 空格Shell命令 参数 执行shell命令

使用bashdb进行debug的常用命令(cont.)

三、控制脚本执行类:

n 执行下一条语句,遇到函数,不进入函数里面执行,将函数当作黑盒

s n 单步执行n次,遇到函数进入函数里面

b 行号n 在行号n处设置断点

del 行号n 撤销行号n处的断点

c 行号n 一直执行到行号n处

R 重新启动当前调试脚本

Finish 执行到程序最后

cond n expr 条件断点

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_28885435/article/details/116772640

智能推荐

理解 Go 语言中的 panic 输出_qt调用go panic: runtime error: invalid memory addres-程序员宅基地

文章浏览阅读1.8k次。我的代码有一个 bug。?panic: runtime error: invalid memory address or nil pointer dereference[signal SIGSEGV: segmentation violation code=0x1 addr=0x30 pc=0x751ba4]goroutine 58 [running]:github.com/joeshaw..._qt调用go panic: runtime error: invalid memory address or nil pointer derefer

对象存储调研四华为云OBS_华为obs对象存储调研文档-程序员宅基地

文章浏览阅读905次。华为云对象存储OBS架构华为云对象存储服务(Object Storage Service ,OBS)是一个基于对象的海量存储服务,为客户提供海量、安全、高可靠、低成本的数据存储能力。OBS的基本组成是桶和对象,其中对象是OBS中数据存储的基本单位,一个对象实际是一个文件的数据与其相关属性信 息的集合体,包括Key 、 Metadata 、Data三部分。华为云针对OBS提供的REST API进行了二次开发,为您提供了控制台、SDK和各类工 具,方便在不同的场景下轻松访问OBS桶以及桶中的对象。当然您也_华为obs对象存储调研文档

mapbox-gl开发教程(一):搭建前端开发环境_mapbox-gl教程-程序员宅基地

文章浏览阅读2.6k次。–mapbox-gl是一个开源、基于webgl技术的前端地图类库–开发教程篇一:搭建前端开发环境1、mapbox官网注册一个账号,生成一个开发token,在mapbox-gl2.0以前,使用自搭建的后台地图服务时,可以不使用此token,参见公众号文章:mapbox-gl升级到2.0后,使用自搭建的后端服务,也需要token,敬请注意!,或者修改mapbox-gl2.0以后的源码,也能避免token,参见公众号文章:mapbox-gl避免设置token源码修改,修改时,看一下官网的许可声明。2、生成t_mapbox-gl教程

GRPC-Protobuf报错Could not find artifact com.google.protobuf:protoc:exe:${os.detected.classifier}-程序员宅基地

文章浏览阅读2w次,点赞2次,收藏3次。GRPC-Protobuf报错Could not find artifact com.google.protobuf:protoc:exe:${os.detected.classifier}:3.12.0 in central解决方案_com.google.protobuf:protoc

SQL on Hadoop TPCDS性能测试_开源hadoop测试tpc-ds指标-程序员宅基地

文章浏览阅读4.5k次。本测试,重点性能测试4个维度,测试对象为主流SQL on Hadoop性能表现,为技术选型做一些参考,由于硬件资源有限,本测试数据集比较小,前提是所有数据保证都能装载到内存.内容还涉及到了SQL on RDBMS 和 SQL on NOSQL性能测试。对一些特殊场景的应用参考。企业级数据仓库解决方案,特别是分析性场景慢慢会被SQL on Hadoop逐渐替代,而且SQL on Hadoop逐渐_开源hadoop测试tpc-ds指标

kafka小白教程从入门到精通_kafka 教程-程序员宅基地

文章浏览阅读2k次,点赞5次,收藏23次。kafka小白教程kafka介绍kafka的概念Kafka(底层源码使用scala语言实现): kafka分布式集群的搭建 kafka分布式集群的实操: 1)命令行客户端(测试)主题的CRUD操作发布消息 订阅消息 2)使用Java API来操作kafka分布式集群: 发布消息 订阅消息 kafka内部原理 自定义分区 消息拦截器 理论: ..._kafka 教程

随便推点

docker 部署cassandra_docker run cassandra-程序员宅基地

文章浏览阅读7.8k次。摘要本文主要介绍在redhat7 平台,利用docker 部署cassandra 集群,除了介绍基本的部署步骤,另外主要 讨论类似于cassandra 这种分布式集群系统部署 docker如何进行网络配置的问题文章只发布在CSDN与个人站点,其余站点均属盗版侵权 更多cassandra知识请访问 web 个人开发者安装docker最简单的方法,利用已有的脚本curl -fsSL https://_docker run cassandra

Ubuntu设置开机默认内核及删除多余内核_ubuntu设置默认内核,刪除多余内核-程序员宅基地

文章浏览阅读8.5k次,点赞15次,收藏79次。Ubuntu设置开机默认内核及删除多余内核Ubuntu一更新就会启动新的内核,进入系统后总会发现驱动不好用了。所以可以对内核进行下设置,使得主机进入我们想要的内核版本,也可以删除掉多余的内核。Ubuntu设置开机默认内核#不删除内核情况下,更改要进入的内核sudo gedit /etc/default/grub (1)找到GRUB_DEFAULT = "0" grub菜单如下:- Ubuntu- Advanced options for Ubuntu * Ubuntu, with Li_ubuntu设置默认内核,刪除多余内核

IDEA中文字体格式-程序员宅基地

文章浏览阅读1.1w次,点赞9次,收藏9次。背景:刚刚换了新版的IDEA,然后发现项目中中文巨丑,而且字体大小不一致如下图:原因分析:这两张图就是工具编辑面板的字体设置,只设置了主字体,备用字体没有设置,非常怀疑主字体不支持中文所以想到两种解决方式方式一:设置备用字体,切记一定要选可以支持中文的字体,举个例子“fangsong”,"Microsoft XXX"等等两图中得备用字体都设置成“fangsong”字体格式,然..._idea中文字体

23种设计模式详解与示例代码(详解附DEMO)_23种设计模式代码-程序员宅基地

文章浏览阅读1.3w次,点赞34次,收藏81次。本文将探讨设计模式在Java中的应用与实现。设计模式是一套被广泛接受的解决常见软件设计问题的经典方法。在Java编程中,设计模式是提高代码可读性、可维护性和可扩展性的关键。本文将详细介绍Java中常用的几种设计模式,包括工厂模式、单例模式、观察者模式和装饰器模式,并提供具体的代码示例和解释,帮助读者深入理解和学习这些模式的实现方式。_23种设计模式代码

vue-print设置页眉和页脚_掌握这5个Word页码设置技巧,写论文足够用了-程序员宅基地

文章浏览阅读3.6k次。1、每页添加一个文档双击页眉处,进入相应的编辑状态,将鼠标移到页脚处,点击设计——页眉和页脚——页码,插入合适的样式即可。PS:页码插入的方式还可以通过插入——页眉和页脚——页码方式来实现。2、第几页共几页如何将文档设置成第几页共几页的格式?点击插入——页码——选择第几页共几页的页码格式(即X/Y格式),之后选中页码按Shift+F9切换域代码,输入内容【第{PAGE}页/共{NUMPAGES}页..._v-print 设置页眉

云计算介绍-1.1,IaaS\PaaS\SaaS辨析_paas msb-程序员宅基地

文章浏览阅读6.4k次,点赞4次,收藏6次。云计算是个很神奇的词汇,神奇在一切基于WEB的应用似乎都可以套到云计算范围内。一个原因是:云计算几乎没有标准,因为大家都不清楚什么是云计算,大家觉得各种概念都像云计算,所以可以任意用,随意扩展云计算范围。作为一个研发人员,我希望从底层实现来了解云计算的实质。所以在介绍云计算时,我希望能够找到一种直观、容易理解、直接从底层实现而非商业模式入手 的介绍方法,这个突破口就是:1,计费模式,从中可以理解什么是按需购买,2,与旧技术对比(没有一种技术是凭空产生,大多数技术都是旧技术演进而来)。_paas msb