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. Linux(8):linux三剑客sed和awk & Shell 编程(1)

    linux 三剑客 之 sed # sed 是什么? # sed : 字符流编辑器 Stream Editor: sed 擅长 替换.取行等 # sed 的功能与版本: 处理纯文本文件.日志.配置文件 ...

  2. AnyChart图表仪表控件在Flex环境下使用

    AnyChart控件是一款当前流行的数据可视化解决方案,使客户可以创建交互地.生动的图表.实时仪表和地图.同时支持Flash和HTML5显示,控件提供极好的视觉外观和配色方案能够使客户根据不同的需求设 ...

  3. Android开发之(1)AnimationListener

    1,就像Button控件有监听器一样,动画效果也有监听器,只需要实现AnimationListener就可以实现对动画效果的监听,只需要实现AnimationListener就可以实现对动画效果的监听 ...

  4. BZOJ 1090 字符串折叠(Hash + DP)

    题目链接 字符串折叠 区间DP.$f[l][r]$为字符串在区间l到r的最小值 正常情况下 $f[l][r] = min(f[l][r], f[l][l+k-1]+f[l+k][r]);$ 当$l$到 ...

  5. Java集合——遍历集合元素并修改

    Java集合——遍历集合元素并修改 摘要:本文主要总结了遍历集合的方式,以及在遍历时修改集合要注意的问题. 遍历Collection 对List和Set的遍历,有四种方式,下面以ArrayList为例 ...

  6. Flink的安装配置

    一. Flink的下载 安装包下载地址:http://flink.apache.org/downloads.html  ,选择对应Hadoop的Flink版本下载 [admin@node21 soft ...

  7. BZOJ1017魔兽地图DotR 樹形DP

    @(BZOJ)[樹形DP, 三維DP] Description DotR (Defense of the Robots) Allstars是一个风靡全球的魔兽地图,他的规则简单与同样流行的地图DotA ...

  8. discuz搬家

    1.需要重命名forumdata下面的cache和templates文件夹 2.如果数据库账户名和密码有改动过,需要修改config.inc.php 3.保证uc_server的链接正确!

  9. 改动C:\WINDOWS\system32\drivers\etc\hosts 文件有什么作用

    host是一个没有扩展名的系统文件,能够用记事本等工具打开,其作用就是将一些常常使用的网址域名与其相应的IP地址建立一个关联"数据库".当用户在浏览器中输入一个须要登录的网址时,系 ...

  10. google 集群计算的3大基础设施

    1.  GFS  分布式文件系统 2.  map-reduce 分布式计算框架 3. bigtable 海量key-value的存储 (开源实现:Hypertable)