Shell调试技术总结(二)

本文介绍了Shell脚本的调试方法,包括调试钩子(DEBUG变量控制的代码块)和Shell选项(-n、-x、-c)。调试钩子在开发阶段用于输出调试信息,而不需要在最终版本中删除。通过-n检查脚本语法,-x用于显示执行的命令及变量,-c则用于从字符串中执行命令。此外,还提到了内部变量PS4在调试过程中的作用,以及如何利用FUNCNAME进行更详细的调试。
摘要由CSDN通过智能技术生成

(三)调试钩子,也称调试块,是源于其他的高级程序语言的调试方法,调试钩子实际上就是一个if/then结构的代码块,DEBUG变量控制该代码是否执行,在程序的开发调试阶段将DEBUG变量设置为TRUE,使其输出调试信息,到了程序交付阶段,将DEBUG设置为FALSE,关闭调试钩子,而无需一一删除调试钩子代码。一般调试钩子就是如下代码块:

1 if [ "$DEBUG" ="true" ]
  2then
 3   echo "Debugginginformation: "
 4   、、、、
 5   fi

调试钩子中DEBUG是一个全局变量,在开始调试阶段可利用export DEBUG=true 将DEBUG设置为true 。当然上面的代码块在需要许多地方需要调试的情况下非常麻烦,我以我们可以定义一个DEBUG函数使植入调试钩子,这样比较方便。

1 #!/bin/sh
  2DEBUG()
  3 {
 4   if [ "$DEBUG" ="true" ]
 5   then
 6     $@
 7   fi
  8 }
 9  a=0
 10  b=2
 11 c=100
 12  DEBUG echo "a=$a b=$b c =$c" #第1个调试钩子
 13 while :
 14  do
 15 DEBUG echo "a=$a b=$b c =$c" #第个调试钩子
 16     if (( $a >= 10 ))
 17    then
18      b
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值