如何调试shell脚本

今天看shell脚本攻略的时候,看见这个方法,感觉还是不错的

#!/bin/bash

function DEBUG(){
     [[ $_DEBUG == ‘on‘ ]] && [email protected] || :
}

for i in {1..10}
do
    DEBUG echo $i
done
_DEBUG=on ./debug.sh
时间: 2024-11-02 11:32:49

如何调试shell脚本的相关文章

使用sh-x调试shell脚本

参考:http://blog.chinaunix.net/uid-20564848-id-73502.html 1. 通过sh -x 脚本名  #显示脚本执行过程2.脚本里set -x选项,轻松跟踪调试shell脚本 [以下字段转自:http://linux.chinaitlab.com/SHELL/727128_4.html]"-x"选项可用来跟踪脚本的执行,是调试shell脚本的强有力工具."-x"选项使shell在执行脚本的过程中把它实际执行的每一个命令行显示

RHEL环境下调试Shell脚本时遇到字符串转换整数的问题

字符串转整型!这种需求应该在编程语言里很常见,Shell里就太麻烦了.有人问为什么要转换?我遇到的问题是参数数量$#需要进行整型运算,而$#取出来的却是字符串,以下为证: if [ $# != 1 ] ; then......fi这里只能用!=,=,==字符串的比较符,而使用-eq,-lt这些整数比较符就报错了.需要用来做运算就必需转换为整型,在网上查了半天然后问了一大圈朋友,得到的方法却是这样的i=`expr $# + 0 `这种方法确实有点搞笑了,但好象真的没有其它更好的办法了! 还要注意的

linux中调试shell脚本

原来的脚本Check.sh: monfile="/var/log/test/testMon.txt"logfile="/var/log/test/testMon.log"touch $monfile ... 该脚本是在window里编辑的,编辑后上传到linux的 问题: 运行后,目录下出现的文件是testMon.txt??和testMon.log?? 就是会有乱码 修改过程: 执行sh -x Check.sh,就发现后面多了\r:monfile=$'/var/lo

shell脚本调试技术_转

转自:http://itlab.idcquan.com/linux/SHELL/727128.html 本文全面系统地介绍了shell脚本调试技术,包括使用echo, tee, trap等命令输出关键信息,跟踪变量的值,在脚本中植入调试钩子,使用"-n"选项进行shell脚本的语法检查, 使用"-x"选项实现shell脚本逐条语句的跟踪,巧妙地利用shell的内置变量增强"-x"选项的输出信息等. 一. 前言 shell编程在unix/linux

Shell脚本调试技术

一. 前言 shell编程在unix/linux世界中使用得非常广泛,熟练掌握shell编程也是成为一名优秀的unix/linux开发者和系统管理员的必经之路.脚本调试的主要工作就是发现引发脚本错误的原因以及在脚本源代码中定位发生错误的行,常用的手段包括分析输出的错误信息,通过在脚本中加入调试语句,输出调试信息来辅助诊断错误,利用调试工具等.但与其它高级语言相比,shell解释器缺乏相应的调试机制和调试工具的支持,其输出的错误信息又往往很不明确,初学者在调试脚本时,除了知道用echo语句输出一些

【转】shell脚本调试(bash trap support bashdb )

原文网址:http://zhu8337797.blog.163.com/blog/static/170617549201122512712136/ 命 令 选 项 功 能 bash –x 脚本名 回显 在变量替换之后.执行命令之前,显示脚本的每一行 bash –v 脚本名 详细 在执行之前,按输入的原样打印脚本中各行 bash –n 脚本名 不执行 解释但不执行命令 set –x 打开回显 跟踪脚本的执行 set +x 关闭回显 关闭跟踪功能 --------------------------

shell脚本的调试

-n 只读取shell脚本,但不实际执行 "-n"可用于测试shell脚本是否存在语法错误,但不会实际执行命令.在shell脚本编写完成之后,实际执行之前,首先使用"-n"选项来测试脚本是否存在语法错误是一个很好的习惯.因为某些shell脚本在执行时会对系统环境产生影响,比如生成或移动文件等,如果在实际执行才发现语法错误,您不得不手工做一些系统环境的恢复工作才能继续测试这个脚本. -c "string" 从strings中读取命令 "-

Linux Shell脚本面试25问

Q:1 Shell脚本是什么.它是必需的吗? 答:一个Shell脚本是一个文本文件,包含一个或多个命令.作为系统管理员,我们经常需要使用多个命令来完成一项任务,我们可以添加这些所有命令在一个文本文件(Shell脚本)来完成这些日常工作任务. Q:2 什么是默认登录shell,如何改变指定用户的登录shell 答:在Linux操作系统,“/bin/bash”是默认登录shell,是在创建用户时分配的.使用chsh命令可以改变默认的shell.示例如下所示: # chsh <用户名> -s <

shell脚本等的操作

1.命令替换:`` 反向单引号,也称重音符.键盘上和~键在一起的那个键呦,千万不要敲成单引号. A. 使用了``后,shell首先替换输出中``括起来的date命令,然后执行整个输出命令. B.命令替换还可以用于在变量中存储命令输出,如下: 变量ctr将包含当前目录中名字以.txt结尾的文件的计数. 2.expr 大部分shell不支持数字变量,所有变量会被作为字符串.如var=25,变量var中包含的是字符2和字符5组成的字符串,而不是数字25. Expr命令用来评估算术表达式,命令的输出发送