转至:https://blog.csdn.net/yjgithub/article/details/80908079

目录

一.简介 
二.sh -x 脚本名.sh 
三.set -x

一.简介

使用sh -x调试shell脚本 
“-x”选项可用来跟踪脚本的执行,是调试shell脚本的强有力工具。“-x”选项使shell在执行脚本的过程中把它实际执行的每一个命令行显示出来,并且在行首显示一个”+”号。 “+”号后面显示的是经过了变量替换之后的命令行的内容,有助于分析实际执行的是什么命令。 “-x”选项使用起来简单方便,可以轻松对付大多数的shell调试任务,应把其当作首选的调试手段。 
shell的执行选项除了可以在启动shell时指定外,亦可在脚本中用set命令来指定。 “set -参数”表示启用某选项,”set +参数”表示关闭某选项。有时候我们并不需要在启动时用”-x”选项来跟踪所有的命令行,这时我们可以在脚本中使用set命令,如以下脚本片段所示:

set -x    #启动"-x"选项 要跟踪的程序段
set +x   #关闭"-x"选项

二.sh -x 脚本名.sh

[root@hadoop1 all]# cat 2018070401.sh
#!/bin/bash
var=$1
echo $var
[root@hadoop1 all]# sh -x 2018070401.sh hello
#控制台输出
+ var=hello
+ echo hello
hello
#带+的表示被跟踪的代码

三.set -x

对脚本内部部分代码进行跟踪,被跟踪的代码以set -x开始,与set +x结束

[root@master shellexer]# cat 2018070401.sh
#!/bin/bash
var=$1
set -x
eeco $var
set +x
echo $var
[root@hadoop1 all]# sh 2018070401.sh hello
#控制台输出
+ eeco hello
2018070401.sh: line 4: eeco: command not found
+ set +x
hello

转至:https://www.cnblogs.com/laokanblog/p/11055197.html

1. 几种不错的调试方法

(1)使用echo打印信息
类似与python的print打印
(2)命令行中使用sh -x script.sh
(3)shell脚本中设置
         set -x 开启调试、
         set +x 禁止调试

2. 调试方式的选择

首选调试方式sh -x ,简单便捷。她能跟踪执行信息,将执行脚本的过程中把实际执行的每个命令显示出来,行首显示+, +后面显示经过替换之后的命令行内容,有助于分析实际执行的是什么命令,这里也相当于打印出来了执行的命令。

shell脚本的调试sh-x的更多相关文章

  1. Shell脚本的调试技术

    编程中必不可少的一点就是调试,Shell脚本以其强大的功能令人向往,当然,它的强大之处不只是体现在语言的实现功能上,更强大的是它的调试功能,下面,我将以实例讲解Shell脚本的调试技术. 下面是我所用 ...

  2. Shell脚本的调试方法

    Shell脚本的调试方法 Shell提供了一些用于调试脚本的选项,如下所示: -n    读一遍脚本中的命令但不执行,用于检查脚本中的语法错误 -v    一边执行脚本,一边将执行过的脚本命令打印到标 ...

  3. shell脚本怎么调试

    shell是Linux系统上常用的一种脚本语言.一般从事web后台开发的从业者,都会用到shell,因此shell调试也是一项必备的技能.本文教你如何进行shell脚本调试. 工具/原料   Linu ...

  4. shell 脚本常用调试方法

    曾经我刚开始学习 shell 脚本时,除了知道用 echo 输出一些信息外,并不知道其他方法,仅仅依赖 echo 来查找错误,比较难调试且过程繁琐.效率低下.本文介绍下我常用的一些 shell 脚本调 ...

  5. shell脚本的调试技巧

    请参考文章:http://www.ibm.com/developerworks/cn/linux/l-cn-shell-debug/index.html 读后的感觉,还是用shell的选项灵活,方便. ...

  6. shell脚本头,#!/bin/sh与#!/bin/bash的区别.

    因为今天写了个小脚本,死活不成功,总是报文件或者目录不存在,问了一下我们马同学的正常写法,发现只有脚本头的区别,也就是今天本文要讲的#!/bin/sh与#!/bin/bash. 本文参考:https: ...

  7. shell 脚本文件类型.sh ,变量

    1. shell脚本编程的基本过程 (1)建立shell文件,以 .sh 结尾的文件 (2)赋予shell文件执行权限,chmod 0777 文件名 (3)执行shell文件, ./ 文件名 或者ba ...

  8. shell脚本步骤调试

    第一种方式===> [root@localhost functions]# sh -x test.sh --check xx+ '[' --check '!=' -check ']'+ case ...

  9. shell脚本3——调试

    bash -x file.sh 这样会把执行到的语句全部打印出来 #!/bin/bash 不会打印的程序块 set -v 需要打印的程序块 set -v 不会打印的程序块

随机推荐

  1. 如何理解python中的cmp_to_key()函数

    cmp_to_key() 在functools包里的函数,将老式的比较函数(cmp function)转化为关键字函数(key function). 与接受key function的工具一同使用(如 ...

  2. Android Studio如何查看自己设计的数据库

    首先点击左上角进入Device File Explorer 进入后 点击data-data 找到你的项目名称 进入后点击你建立的数据库 一步步按照提示进行操作,即可显示你的表

  3. Linux 集群 和免秘钥登录的方法。

    /* 1.1.什么是集群? 很多台服务器(计算机)做相同的事,就称之为集群 服务器和服务器之间必须要处于联通状态(linux01和linux02可以相互访问并且传输数据) 服务器的配置和常见的计算机没 ...

  4. service层 必须做业务逻辑的处理

    package com.aaa.zxf.service; import com.aaa.zxf.mapper.BookMapper; import com.aaa.zxf.model.Book; im ...

  5. vector概述

    vector是一个能够支持任何类型的容器,本身为一个可以动态增长的数组. 1.vector基本数据结构 STL中所有的容器都包括三部分: 迭代器,遍历容器的元素,控制容器空间的边界和元素移动. 构造函 ...

  6. github中,一些涉及到用户配置的文件怎么处理(比如数据库用户名/密码)?

    感谢问题回答者:Livid 问题地址:https://www.v2ex.com/t/74245 加密方式参考:http://www.manongjc.com/detail/12-bmntimjowei ...

  7. C语言中的单引号和双引号的区别

    首先肯定地说,二者是有区别的,不是说用谁都一样. 1.实质区别,代表的含义不同 'A'代表的是一个整数,而且这个整数对应的是编译器所采用的字符集中的字符序列对应的数值.所以'A'跟ASCII中的65意 ...

  8. k8s之Pod基础概念

    1. 资源限制 Pod是kubernetes中最小的资源管理组件,Pod也是最小化运行容器化应用的资源对象.一个Pod代表着集群中运行的一个进程.kubernetes中其他大多数组件都是围绕着Pod来 ...

  9. DNS域名解析之反向解析and主从域名服务器 (今天大小便正常,未来可期)

    DNS解析之反向解析和域名主从服务器 反向解析:根据IP地址查找对应的域名 yum -y install bind 安装软件包 查看需要修改的配置文件所在路径 rpm -qc bind 查询bind软 ...

  10. cloudstack-4.1.5版本最全入门笔记【2022】

    cloudstack简介 CloudStack是一个开源的具有高可用性及扩展性的云计算平台.目前Cloudstack支持管理大部分主流的hypervisors,如KVM,XenServer,VMwar ...