Linux Shell 脚本调试模式使用方法

linux shell的调试模式在实际应用中有很大作用,其启用方式有多种,下面为大家详细讲解一下Linux Shell 脚本调试模式使用方法。

如何开始写一个脚本

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

#!/bin/sh          [sh 脚本]#!/bin/bash        [bash 脚本]#!/usr/bin/perl    [perl 程序]#!/bin/awk -f      [awk 脚本]  

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

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

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

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

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

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

示例:

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

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

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

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

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

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

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

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

1、 改变 Shell 脚本首行

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

#!/bin/sh 选项

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

2、 调用 Shell 调试选项

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

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

示例:

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

3、 使用 Shell 内置命令 set

第三个方法是使用内置命令 set去调试一个给定的 Shell 脚本部分,如一个函数。这个机制是重要的,因为它让我们可以去调试任何一段 Shell 脚本。 我们可以如下使用set 命令打开调试模式,其中选项是之前提到的所有调试选项。

set 选项

启用调试模式:

set -选项

禁用调试模式:

set +选项

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

set -

关于启用 Shell 脚本调试模式,先讲这些。正如我们看到的,我们可以调试一整个 Shell 脚本或者特定部分脚本。 在此系列下面的两篇文章中,我们会举例介绍如何使用 Shell 脚本调试选项,进一步了解 详细(verbose)、语法检查(syntax checking)、跟踪(tracing)调试模式。 更重要的是,希望这篇指南能够帮到您。

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/221065.html<

(0)
管理的头像管理
上一篇2025-04-14 20:53
下一篇 2025-04-14 20:54

相关推荐

  • 云服务器和云虚拟主机怎么选?云服务器和虚拟主机区别

    云服务器适合业务增长快、需弹性扩展的场景,而云虚拟主机适合预算有限、技术门槛低的小型静态网站或测试环境,二者核心区别在于资源独享性与运维复杂度,核心差异解析:从底层架构到使用体验很多人容易混淆这两者,觉得它们都是“买空间建站”,它们的底层逻辑完全不同,云服务器(ECS)就像是你租了一整栋别墅,水电网络独立,你想……

    2026-06-29
    0
  • 赣州智慧旅游招聘是真的吗?赣州旅游人才招聘信息

    中级岗位(3-5年经验)月薪范围通常在6000-10000元,这类岗位需要独立负责项目模块,如独立运营一个抖音账号,或维护一个景区小程序的功能迭代,具备成功案例的候选人议价能力较强,高级岗位(5年以上经验)月薪范围通常在10000-20000元,部分核心管理岗可达更高,这类人才需要具备战略规划能力,如制定整个景……

    2026-06-29
    0
  • 赣州智能物联网车位锁如何管理?智能车位锁管理系统多少钱

    赣州智能物联网车位锁管理的核心在于通过云端平台实现远程控锁、状态实时监控及自动计费,彻底解决传统车位“被占难管”与“找位难”的痛点,在赣州这样的城市,随着机动车保有量的持续增长,老旧小区、商业综合体以及私人固定车位的资源矛盾日益凸显,传统的机械地锁或简易遥控锁,不仅操作繁琐,更无法实现数据化管理,引入智能物联网……

    2026-06-29
    0
  • 赣州智能消防栓好用吗,智能消防栓多少钱一个

    赣州智能消防栓通过物联网技术实现实时监测与远程报警,能显著降低火灾响应时间并提升城市消防安全管理水平,是目前智慧城市建设中不可或缺的基础设施,赣州智能消防栓的核心价值与应用场景传统消防栓往往存在“看不见、摸不着、用不了”的痛点,在赣州这样地形复杂、老城区与新城区并存的区域,传统设施的管理难度极大,智能消防栓的出……

    2026-06-29
    0
  • 云服务器和物理机到底有啥区别?

    云服务器本质上是虚拟化资源池中的弹性实例,而传统物理服务器是独占的硬件实体,前者胜在弹性与运维便捷,后者强在物理隔离与性能稳定,具体选择取决于业务对成本、扩展性及安全合规的权衡,很多人初次接触服务器时,容易把“云服务器”和“传统物理服务器”混为一谈,觉得它们都是用来跑网站或存数据的盒子,这两者的底层逻辑完全不同……

    2026-06-29
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注