shell是Linux系统上常用的一种脚本语言。一般从事web后台开发的从业者,都会用到shell,因此shell调试也是一项必备的技能。本文教你如何进行shell脚本调试。

工具/原料

 
  • Linux操作系统
  • ssh工具(SecureCRT)

方法/步骤

 
  1.  

    启动Linux系统,用ssh工具(xshell或者SecureCRT等)连上Linux系统。我用的是SecureCRT,若SecureCRT不会用,可以自己百度或者留言沟通。用SecureCRT连上之后,如图所示。

  2.  

    shell脚本调试不需要什么特殊的工具。bash自带了一些调试选项。具体选项包含:

    -x :  在执行时显示参数和命令;

    +x:禁止调试

    -v:当命令行进行读取时显示输入;

    +v:禁止打印输入。

    在shell脚本启动时或者在脚本内都可以添加这些调试选项。测试脚本debug.sh,代码如图所示。

  3.  

    在脚本启动时添加调试选项。来调试debug.sh,可以在启动脚本时,输入以下命令:bash -x  ./debug.sh 或者  sh -x ./debug.sh。

  4.  

    在脚本内添加调试选项,使用set 命令。例如要开启-x选项,则在脚本内容中添加命令:set -x

    set +x 是关闭调试。

  5.  

    现在要看debug.sh脚本执行的调试信息,就不需要使用bash -x  ./debug.sh执行了。直接./debug.sh 就可以看到调试信息。

  6.  

    还有一种更便捷的方法,就是在脚本开头添加-xv选项,例如将#!/bin/sh 改成

    #!/bin/sh -xv

  7.  

    同样现在执行./debug.sh,也可打印出调试信息。

  8.  

    除了bash内置的选项来调试shell,还可以自定义调试函数。自定义调试函数可以更加灵活的应用。

  9. 9

    打开自定义调试函数,在启动脚本时,_DEBUG=on ./script。如果不开启调试开关,就直接执行./script。

shell脚本怎么调试的更多相关文章

  1. Shell脚本的调试技术

    编程中必不可少的一点就是调试,Shell脚本以其强大的功能令人向往,当然,它的强大之处不只是体现在语言的实现功能上,更强大的是它的调试功能,下面,我将以实例讲解Shell脚本的调试技术. 下面是我所用 ...

  2. Shell脚本的调试方法

    Shell脚本的调试方法 Shell提供了一些用于调试脚本的选项,如下所示: -n    读一遍脚本中的命令但不执行,用于检查脚本中的语法错误 -v    一边执行脚本,一边将执行过的脚本命令打印到标 ...

  3. shell脚本的调试技巧

    请参考文章:http://www.ibm.com/developerworks/cn/linux/l-cn-shell-debug/index.html 读后的感觉,还是用shell的选项灵活,方便. ...

  4. shell 脚本常用调试方法

    曾经我刚开始学习 shell 脚本时,除了知道用 echo 输出一些信息外,并不知道其他方法,仅仅依赖 echo 来查找错误,比较难调试且过程繁琐.效率低下.本文介绍下我常用的一些 shell 脚本调 ...

  5. shell脚本的调试sh-x

    转至:https://blog.csdn.net/yjgithub/article/details/80908079 目录 一.简介 二.sh -x 脚本名.sh 三.set -x 一.简介 使用sh ...

  6. shell脚本步骤调试

    第一种方式===> [root@localhost functions]# sh -x test.sh --check xx+ '[' --check '!=' -check ']'+ case ...

  7. shell脚本3——调试

    bash -x file.sh 这样会把执行到的语句全部打印出来 #!/bin/bash 不会打印的程序块 set -v 需要打印的程序块 set -v 不会打印的程序块

  8. shell脚本调试

    转自:http://www.ibm.com/developerworks/cn/linux/l-cn-shell-debug/ 一. 前言 shell编程在unix/linux世界中使用得非常广泛,熟 ...

  9. 【转】Linux Shell脚本调试技术

    本文转载自:https://www.ibm.com/developerworks/cn/linux/l-cn-shell-debug/ Shell脚本调试技术 本文全面系统地介绍了shell脚本调试技 ...

随机推荐

  1. uva 1426 离散平方根

    1426 - Discrete Square Roots Time limit: 3.000 seconds A square root of a number x <tex2html_verb ...

  2. HDU 2197 本源串

    如果一个串能完全由其子串组成,那么这个串就不是本源串 求长度为n的本源串的个数. 由定义一个串如果不是本源串,那么他的长度一定是组成其子本源串的长度的(>=1) 整数倍. 那么长度为n的串总个数 ...

  3. 品酒大会 BZOJ 4199

    品酒大会 [问题描述] [输入格式] [输出格式] [样例输入] 10ponoiiipoi 2 1 4 7 4 8 3 6 4 7 [样例输出] 45 56 10 56 3 32 0 0 0 0 0 ...

  4. indexedDB 增删改查

    /** * 打开数据库 */ export function openDB() { return new Promise((resolve, reject) => { let indexedDB ...

  5. rman备份OBSOLETE和EXPIRED参数来历及区别

    http://blog.itpub.net/30496894/viewspace-2096221/

  6. Java 新手的通病

    一:对算法和数据结构不熟悉 为什么我先拿“数据结构和算法”说事捏?这玩意是写程序最最基本的东东.不管你使用 Java 还是其它的什么语言,都离不开它.而且这玩意是跨语言的,学好之后不管在哪门语言中都能 ...

  7. stm32f103c8t6命名

    stm32f103c8t6和stm32f103rbt c8:48脚.64k :rb:64脚.128k.

  8. 一张图搞清楚PMBOK所有过程的使用

      很多参加PMP培训的学员大概都会有一个感受,上课时似乎每个知识点都听懂了,大的知识框架也弄明白了,但是所有这些串起来在实践中怎么用呀!说的再直接一点,在考试的时候这些过程和活动是以怎样的逻辑来应用 ...

  9. Chrome/谷歌开发者工具分析

    Chrome/谷歌开发者工具还是要好好掌握一下,对于前端开发超级有用:https://developers.google.com/web/tools/chrome-devtools/ 1.js内存使用 ...

  10. 微信小程序 - 音频播放(1.2版本和1.2版本之后)

    不多说了,直接贴code // 1.2版本以后便不在维护 wx.getBackgroundAudioManager({ success:function(res){ var status =res.s ...