转至: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. C++11之future(二)

    如果有两个线程,其中一个线程想要获取另一个线程的返回值,该怎么办? 于是接下来要谈的package_task就是为了解决这个问题而诞生的. // ConsoleApplication5.cpp : 定 ...

  2. Mac中显示及隐藏文件和文件夹的方法

    一.方法一 直接在文件或文件夹名前面的加一个'.'点号,然后系统会弹出修改确认对话框,点好就行了. 隐藏文件 解除隐藏可以通过方法三显示所有隐藏文件,找到该文件去掉开头的'.',然后通过方法二来解除隐 ...

  3. SaltStack 的基本概念与工作原理 架构设计

    随着云计算技术的快速普及与发展,越来越多的企业开始学习和搭建自己的云平台代替传统的 IT 交付模式,企业的 IT 环境也随之越来越复杂,常规的运维方法与技术已经无法满足现在云环境中系统的配置与变更.基 ...

  4. PyCharm破解无限试用

    一:安装插件 1.打开PyCharm,进入后,点击左上角File,在点击Settings(设置). 2.进入后,点击Plugins,在点击(2.设置图标),然后点击Manage Plugin Repo ...

  5. rsync.sh

    #!/bin/bash file1=`du -sm /var/www/vhosts/|awk '{print $1}'` ps=`ps -C rsync --no-header|wc -l` if [ ...

  6. .NET 7 预览版来啦,我升级体验了

    听说.NET 7 来了,站长怎能不尝鲜呢,在除夕当天将体验情况简单汇报下,然后迎新春喽: 本文目录 .NET 7 详情(Proposed .NET 7 Breaking Changes #7131) ...

  7. 如何在pyqt中自定义SwitchButton

    前言 网上有很多 SwitchButton 的实现方式,大部分是通过重写 paintEvent() 来实现的,感觉灵活性不是很好.所以希望实现一个可以联合使用 qss 来更换样式的 SwitchBut ...

  8. ApacheCN 计算机视觉译文集 20210212 更新

    新增了六个教程: OpenCV 图像处理学习手册 零.前言 一.处理图像和视频文件 二.建立图像处理工具 三.校正和增强图像 四.处理色彩 五.视频图像处理 六.计算摄影 七.加速图像处理 Pytho ...

  9. 使用 TensorFlow 构建机器学习项目中文版·翻译完成

    原文:Building Machine Learning Projects with TensorFlow 协议:CC BY-NC-SA 4.0 不要担心自己的形象,只关心如何实现目标.--<原 ...

  10. ARC-124 部分题解

    E 直接统计原式不好做,注意到首先我们应该知道怎样的 \(x\) 序列是合法的,那么不妨首先来统计一下合法的 \(x\) 序列数量. 令 \(b_i\) 为 \(i\) 向右给的球数,那么有(\(i ...