良许Linux教程网 干货合集 如何在 Linux 中启用 Shell 脚本的调试模式

如何在 Linux 中启用 Shell 脚本的调试模式

Linux系统中脚本是一个可以储存一个文件的一系列命令,用户可以反复调用该文件多次重新执行命令。

如何在 Linux 中启用 Shell 脚本的调试模式

在学习脚本或写脚本的初期阶段,我们通常从写小脚本或者几行命令的短脚本开始,调试这样的脚本时我们通常无非就是通过观察它们的输出来确保其正常工作。

然而,当我们开始写非常长或上千行命令的高级脚本,例如改变系统设置的脚本,在网络上执行关键备份 等等,我们会意识到仅仅看脚本输出是不足以在脚本中找到 Bug 的!

因此,在 Linux 系列中这篇介绍 Shell 脚本调试, 我们将看看如何启用 Shell 脚本调试,然后在之后的系列中解释不同的 Shell 脚本调试模式以及如何使用它们。

如何开始写一个脚本

一个脚本与其它文件的区别是它的首行,它包含 #! (She-Bang – 释伴:定义文件类型)和路径名(解释器路径),通知系统该文件是一个命令集合,将被指定程序(解释器)解释。

下面是不同类型脚本 首行 示例:

  1. #!/bin/sh [sh 脚本]
  2. #!/bin/bash [bash 脚本]
  3. #!/usr/bin/perl [perl 程序]
  4. #!/bin/awk -f [awk 脚本]

注意:如果脚本仅包含一组标准系统命令,没有任何内部 Shell 指令,首行或 #! 可以去掉。

如何在 Linux 操作系统执行 Shell 脚本

调用一个脚本脚本的常规语法是:

  1. $ 脚本名 参数1 ... 参数N

另一种可能的形式是明确指定将执行这个脚本的 Shell,如下:

  1. $ shell 脚本名 参数1 ... 参数N

示例:

  1. $ /bin/bash 参数1 ... 参数N [bash 脚本]
  2. $ /bin/ksh 参数1 ... 参数N [ksh 脚本]
  3. $ /bin/sh 参数1 ... 参数N [sh 脚本]

对于没有 #! 作为首行,仅包含基础系统命令的脚本,示例如下:

  1. ### 脚本仅包含标准系统命令
  2. cd /home/$USER
  3. mkdir tmp
  4. echo "tmp directory created under /home/$USER"

使它可执行并运行,如下:

  1. $ chmod +x 脚本名
  2. $ ./脚本名

启用 Shell 脚本调试模式的方法

下面是主要的 Shell 脚本调试选项:

  • -v (verbose 的简称) – 告诉 Shell 读取脚本时显示所有行,激活详细模式。
  • -n (noexec 或 no ecxecution 简称) – 指示 Shell 读取所有命令然而不执行它们,这个选项激活语法检查模式。
  • -x (xtrace 或 execution trace 简称) – 告诉 Shell 在终端显示所有执行的命令和它们的参数。 这个选项是启用 Shell 跟踪模式。

1、 改变 Shell 脚本首行

第一个机制是改变 Shell 脚本首行,如下,这会启动脚本调试。

  1. #!/bin/sh 选项

其中, 选项可以是上面提到的一个或多个调试选项。

2、 调用 Shell 调试选项

第二个是使用如下调试选项启动 Shell,这个方法也会打开整个脚本调试。

  1. $ shell 选项 参数1 ... 参数N

示例:

  1. $ /bin/bash 选项 参数1 ... 参数N

3、 使用 Shell 内置命令 set

第三个方法是使用内置命令 set 去调试一个给定的 Shell 脚本部分,如一个函数。这个机制是重要的,因为它让我们可以去调试任何一段 Shell 脚本。

我们可以如下使用 set 命令打开调试模式,其中选项是之前提到的所有调试选项。

  1. $ set 选项

启用调试模式:

  1. $ set -选项

禁用调试模式:

  1. $ set +选项

此外,如果我们在 Shell 脚本不同部分启用了几个调试模式,我们可以一次禁用所有调试模式,如下:

  1. $ set -

关于启用 Shell 脚本调试模式,先讲这些。正如我们看到的,我们可以调试一整个 Shell 脚本或者特定部分脚本。

在此系列下面的两篇文章中,我们会举例介绍如何使用 Shell 脚本调试选项,进一步了解 详细语法检查syntax checking、 跟踪tracing调试模式。

关于Linux脚本的分享教程到此结束,大家有什么疑问可以在评论区留言啊。

以上就是良许教程网为各位朋友分享的Linux系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你!

良许微信公众号

本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部