Linux Shell脚本系列教程(七):脚本调试

这篇文章主要介绍了Linux Shell脚本系列教程(七):脚本调试,本文讲解了Bash内建调试功能和自定义调试功能等内容,需要的朋友可以参考下

一、调试脚本

调试功能是每一种编程语言都应该实现的重要特性之一,当出现一些始料未及的情况时,用它来生成脚本的运行信息,调试信息可以帮你弄清楚是什么原因使得程序发生崩溃或者行为异常。

二、Bash内建调试功能

使用Bash的内建调试功能,可以对整个脚本进行调试,也可以仅对脚本中的某些语句进行调试。

#使用set -x和set +x对脚本的某一句进行调试

代码如下:

#!/bin/bash

for i in { 1 2 3 4 5 6 };

do

set -x #开启调试功能

echo $i #要调试的语句

set +x #关闭调试功能

done

echo "Script executed."

代码如下:

#使用 -x选项对整个脚本进行调试

bash -x script.sh #等价于sh -x script.sh

三、 自定义调试功能

Bash内建的调试功能仅能输出固定格式的调试信息,但在很多情况下,我们需要以自定义的格式显示调试信息,这可以通过 _DEBUG环境变量来建立这类调试风格。

代码如下:

#使用_DEBUG=on bash script.sh运行下列脚本

#!/bin/bash

function DEBUG()

{

[ "$_DEBUG" == "on" ] && $@ || : #使用_DEBUG环境变量调试

}

for i in { 1 2 3 }

do

DEBUG echo $i

done

我们在每一个需要打印调试信息的语句前面家DEBUG,如果没有把_DEBUG=on传递个脚本,那么调试信息就不会打印出来。在Bash中,:告诉shell不要进行任何操作。

(0)

相关推荐

  • Linux Shell脚本系列教程(六):数组和关联数组

    这篇文章主要介绍了Linux Shell脚本系列教程(六):数组和关联数组,本文讲解了什么是数组和关联数组、定义打印普通数组、定义打印关联数组等内容,需要的朋友可以参考下 一、数组和关联数组 数组是S ...

  • Linux Shell脚本系列教程(五):数学运算

    这篇文章主要介绍了Linux Shell脚本系列教程(五):数学运算,本文讲解了使用let、(())和[]进行算术运算、使用expr进行算术运算、使用bc进行算术运算三种方法,需要的朋友可以参考下 在 ...

  • Linux Shell脚本系列教程(四):使用函数添加环境变量

    这篇文章主要介绍了Linux Shell脚本系列教程(四):使用函数添加环境变量,本文对环境变量的一知识作了介绍,并给出普通添加环境变量和使用函数添加环境变量的方法,需要的朋友可以参考下 一、简介 环 ...

  • Linux Shell脚本系列教程(三):变量和环境变量

    这篇文章主要介绍了Linux Shell脚本系列教程(三):变量和环境变量,本文讲解了普通变量、获取字符串的长度、环境变量等内容,需要的朋友可以参考下 一、玩转变量和环境变量 变量是任何一种编程语言都 ...

  • Linux Shell脚本系列教程(二):终端打印命令详解

    这篇文章主要介绍了Linux Shell脚本系列教程(二):终端打印命令详解,本文着重讲解了echo终端打英printf终端打印两个打印出输出命令,需要的朋友可以参考下 终端打印 终端是交互式工具,用 ...

  • Linux Shell脚本系列教程(一):Shell入门

    这篇文章主要介绍了Linux Shell脚本系列教程(一):Shell入门,本文讲解了Shell简介、Shell基本操作、如何打开Shell终端、Shell脚本的概念、如何运行Shell脚本、Shel ...

  • WinterBoard美化系列教程七:信号强度

    从制作到更换主题过程中涉及到很多繁琐的操作步骤,因此会有很多内容.笔者将结合已有的经验并按不同的类型进行分类总结,在每一部分中阐述一个主题,如果以后有新的内容,我们还会相应的进行更新. 步骤/方法 0 ...

  • Linux shell脚本基础学习详细介绍(完整版)

    Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头、注释、变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提。 1. Li ...

  • Linux shell脚本中连接字符串的方法

    这篇文章主要介绍了Linux shell脚本中连接字符串的方法,大家参考使用吧 如果想要在变量后面添加一个字符,可以用一下方法: 代码如下: $value1=home $value2=${value1 ...