`

【转】bash shell的调试

阅读更多
bash shell的调试

bash --debugger script script-arguments...

习惯了vim,写bash shell也是用它,一般来说shell都比较精短,所以也没考虑什么提高效率的方法,今天无意中看见有人提到vim的一个编写bash的插件bash support,就下载了试试,果然强大。

下载后按说明安装,gvim test.sh打开就看到bash菜单下强大的功能了,大部分虽然我们都用不到,至少我用不到,有的语法看都没看到过,不过可以当参考手册用。。。。

接下来,我们需要调试功能,要安装bashdb,sudo apt-get install bashdb,然后装完后按照网上说法,bash support插件默认bash的调试设置路径和bashdb真正的安装目录不一致,建立一个链接就好了。

sai@sai-laptop:~$ whereis bashdb
bashdb: /usr/bin/bashdb /usr/share/bashdb /usr/share/man/man1/bashdb.1.gz

sai@sai-laptop:~$ sudo mkdir /usr/local/share/bashdb

sai@sai-laptop:~$ sudo ln -s /usr/share/bashdb/bashdb-main.inc /usr/local/share/bashdb/bashdb-main.inc

然后就OK了,随便写一个shell,F9开始调试。

一些常用的调试方法

run 运行

r 重启

w看附近的代码

. 列出当前运行到的代码

l m n 列出m到n行之间的代码

b n 在第n行设断点

L 列出所有断点

d n 删除第n行的断点

D 删除所有断点

W var 观察var

n 单步执行

s 单步执行,进入函数

p $var显示var,观察用,用得最多的命令

T 观察栈

skip 跳过要执行的命令

ret 执行完到函数返回

finish 执行到程序结束

a n cmd 在第n行执行cmd命令行为

A 取消所有添加的行为

q 退出调试

详细的bashdb文档(英文)



http://bashdb.sourceforge.net/bashdb.html#Invocation

http://lug.fh-swf.de/vim/

from:
http://www.cnblogs.com/xuxm2007/archive/2011/10/20/2218608.html
分享到:
评论

相关推荐

    Advanced Bash Shell Guide(中文版)

    **高级Bash Shell指南中文版**是一本专为学习Bash Shell编程的深入教程,适合初学者和有经验的程序员。Bash Shell是Linux和大多数UNIX系统中最常用的交互式命令行界面和脚本编程环境。它作为用户与操作系统之间的...

    Advanced Bash Shell Guide

    **高级Bash Shell指南** Bash Shell,全称Bourne-Again SHell,是Linux和类UNIX系统中最常用的命令行解释器。它基于原始的Shell编程语言,由Steve Bourne开发,而Bash则是其增强版,由GNU项目维护。这份"Advanced ...

    Learning the bash Shell(中文版第二版)

    此外,新版本还增加了一些新命令,提升了安全性,扩展了readline库,增强了配置和安装过程,并且引入了新的附录,关于bash Shell调试技术的内容也得到了扩充。 对于系统管理员来说,这本书也提供了宝贵的建议,指导...

    bash shell 源代码

    此外,bash源码中的错误处理机制、调试设施以及配置选项也是值得探究的。通过理解这些,你能够编写出更加健壮和高效的shell脚本,甚至可以对bash本身进行定制和扩展。 总而言之,bash 4.2源代码是学习shell编程和...

    PDF电子书《Bash Shell学习笔记》

    ### PDF电子书《Bash Shell学习笔记》知识点总结 #### 1. 引言 - **Shell**: Shell是一种命令解释器也是编程语言,为用户提供与操作系统内核交互的界面,支持用户执行各种命令和工具。 - **Bash**: 本书重点介绍的...

    vscode-bash-debug:VSCode的Bash Shell调试器扩展(基于bashdb)

    对于学习bash shell用法和编写简单脚本很有用。 有用的提示:shellcheck扩展在调试之前发现常见的脚本错误非常有用。 用法 选择“调试”->“添加配置”以添加自定义调试配置(下拉菜单,路径输入等)。 选择Debug...

    bash/shell教程chm版

    **Bash Shell教程** Bash Shell,全称Bourne-Again SHell,是Linux和类Unix系统中默认的命令解释器,它为用户提供了一个与操作系统交互的接口。Bash Shell不仅是一个强大的命令行工具,同时也是一种编程语言,允许...

    Linux Bash Shell快速入门

    文章内容还提到了一些实用的命令来查找系统中bash的位置,如"locate", "find"和"whereis",这些命令对于初学者在配置或调试环境时可能会很有用。如果bash没有被找到,可能需要手动安装BASH软件包。 在编写脚本时,...

    高级bash shell脚本

    **高级Bash Shell脚本** Bash Shell脚本是一种强大的工具,用于自动化Linux和Unix系统中的任务。它允许用户通过编写一系列命令来执行复杂的任务,而无需深入了解编程语言的复杂性。这份“高级Bash-Scripting Guide...

    linux bash shell入门教程

    本教程将从基础入门开始,介绍Bash Shell的基本语法、函数、变量、运算符和调试等内容,帮助读者建立起扎实的Linux编程基础。 首先,编写一个最简单的Hello World程序是学习任何编程语言的第一步,同样也适用于学习...

    高级bash shell手册

    **高级Bash Shell手册** Bash(Bourne-Again SHell)是Unix/Linux系统中最常用的命令行解释器,它提供了丰富的功能,使得用户能够高效地进行系统管理和自动化任务执行。高级Bash Shell手册是一本深入讲解Bash特性和...

    Bash shell 学习笔记

    ### Bash Shell 学习笔记知识点概览 #### 1. 引言 - **Shell**:作为用户与操作系统之间的桥梁,Shell提供了一种与系统进行交互的方式,支持用户执行命令和编写脚本来自动化任务。 - **Bash**:是Bourne-Again ...

    linux - Advanced Bash Shell Scripting Guide

    《Linux高级Bash Shell脚本编程指南》是一本专为Linux用户深入理解并掌握Bash Shell脚本编程的宝贵资源。Bash(Bourne-Again SHell)是Unix及类Unix系统中最常用的命令行解释器,它为用户提供了一种强大而灵活的方式...

    高级bash shell编程书(abs)

    在Linux系统中,Bash Shell是默认的命令行解释器,它为用户提供了与操作系统交互的强大工具。"高级Bash Shell编程书(ABS)"是一个专门为想要深入理解和掌握Bash Shell编程技术的人准备的资源。这本书,无论是英文版...

    bash shell

    Bash Shell调试与优化** - **Shell脚本调试**:`set -x`用于开启命令行追踪,`set -v`开启命令行打印,`set -e`使脚本在遇到错误时立即退出。 - **性能优化**:避免不必要的子shell,减少命令的使用,合理利用缓存...

    鸟哥的BASH Shell编程手册

    **鸟哥的BASH Shell编程手册**是一本专为Linux用户设计的编程教程,主要涵盖了BASH Shell脚本的编写与应用。BASH(Bourne-Again SHell)是GNU项目下的一个Unix/Linux系统默认的命令解释器,它继承了Unix传统的Shells...

    Advanced Bash Shell Scripting

    **高级Bash Shell脚本编写** Bash Shell脚本是一种强大的工具,用于自动化Linux和Unix系统中的任务。它基于Bourne Shell,是大多数Linux发行版的默认Shell。"Advanced Bash Shell Scripting"主题深入探讨了如何充分...

    bash shell 基础编程语法

    ### bash shell 基础编程语法 #### 一、bash shell 概述 **Shell**是一种用户与操作系统之间交互的接口。在用户登录系统后,`init`进程会为每位用户运行一个称为“shell”的程序。Linux下的shell并非只有单一形式...

Global site tag (gtag.js) - Google Analytics