使用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在执行脚本的过程中把它实际执行的每一个命令行显示出…
Bash技巧:使用 set 内置命令帮助调试 shell 脚本 霜鱼片发布于 2020-02-03   在 bash 中,可以使用 set 内置命令设置和查看 shell 的属性.这些属性会影响 shell 的不同行为.下面对一些常用的属性进行说明. set 命令 查看 help set 对 set 命令的说明如下: set: set [-abefhkmnptuvxBCHP] [-o option-name] [--] [arg ...]Change the value of shell att…
转载请注明出处:   sh  -x 命令的执行,会将shell 命令的每一个执行步骤进行打印,可以查看到 整个命令或脚本的执行过程的 debug. sh -n 只读取shell脚本,检测语法错误,但不实际执行 使用上面两个命令可以帮助我们编写shell脚本,使用示例: 1.  从指定目录的所有jar包中寻找 包含 log4j 与 fastjson 的jar文件,使用 sh -x 查看执行的每个过程 find /opt/skywalking/ -name "*.jar"|grep -v…
在编写shell脚本时,调试是个比较麻烦的事,特别是涉及到多层管道命令的时候,会产生多个中间结果,tee命令的作用是从标准输入中读取数据写入标准输出或文件中,利用它可以从管道中读取中间结果并写入本地临时文件中,通过中间结果可以一步一步的定位到脚本的错误 实例 下面是一个简单的脚本,脚本中 processid 函数的作用是查询指定进程名字的进程ID,在管理linux服务器的过程中,这个是很常见的功能,processid 函数作用是利用多层管道命令查询进程ID,以下是测试脚本源码 #!/bin/sh…
今天看shell脚本攻略的时候,看见这个方法,感觉还是不错的 #!/bin/bash function DEBUG(){ [[ $_DEBUG == 'on' ]] && $@ || : } ..} do DEBUG echo $i done _DEBUG=on ./debug.sh…
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 #!/bin/sh   ## java env export JAVA_HOME=/usr/java/jdk1.7.0_79 export JRE_HOME=$JA…
往往在编写脚本完后测试,出现错误需要调试,vim 是一种强大的文本编辑器,对调试也很有帮助.如果指定用不同的颜色显示某些错误,通过配置 .vimrc 文件就会替您完成大部分调试工作. 小柏在测试脚本时,遇到一个错误提示如下: [root@bqh-118 scripts]# vim md5pojie.sh [root@bqh-118 scripts]# sh md5pojie.sh md5pojie.sh: line 17: unexpected EOF while looking for mat…
通过代码和注释的形式,列举了shell的基础操作,快速入门.shell在线编辑器 注释 单行用#号:多行::<<' 多行注释... '.:<<a 多行注释... a.:<<xx 多行注释... xx....#!用来指定shell程序的路径. #!/bin/bash # 我是注释 :<<' ...多行注释... ' 变量 echo用来打印输出. num=12345555 #定义.中间不能有空格. echo ${num} #使用.echo用来输出num. ech…
  安装nmap:  yum install nmap -y nmap 127.0.0.1   脚本 vim apache_is_start.sh chmod 755 apache_is_start.sh 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 #!/bin/bash   # 判断apache是否启动 # Author:James 2016-10-14   # apache所在机器的IP(默认apache端口为80) ipport=1…
转至:https://blog.csdn.net/weixin_40816738/article/details/105244851 ① 脚本编写创建脚本 vim closeFirewall.sh 添加脚本内容如下: if egrep "7.[0-9]" /etc/redhat-release &>/dev/null;then systemctl stop firewalld systemctl disable firewalld elif egrep "6.[…
vim gen_fen_qu_shi_yong_lv.sh chmod  755 gen_fen_qu_shi_yong_lv.sh 1 2 3 4 5 6 7 8 9 10 11 12 13 14 #!/bin/bash # 统计根分区使用率 # Author:Jame 2016-10-14   fenquname=/dev/sda1 # 输出第5行再以%为分隔符输出第1行 rate=$(df -h| grep $fenquname | awk '{print $5}' | cut -d "%…
vim backup_etc.sh chmod 755 backup_etc.sh 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 #!/bin/bash   # 备份/etc文件   # Author:James 2016-10-14   # 同步亚洲时间 ntpdate asia.pool.ntp.org &>/dev/null     # 以年月日格…
一.位置参数变量   1.输出两个输入参数之和 l1.sh 1 2 3 4 5 6 7 8 9 #!/bin/bash   num1=$1 num2=$2 sum=$((num1+num2))   # 输出num1+num2之和   echo $sum 调用:chmod 755 l1.sh ./l1.sh 4 5 2.输出输入参数的个数和值 l2.sh 1 2 3 4 5 #!/bin/bash   echo "所有参数个数:$#" echo "所有参数:$*" e…
#!/bin/bashif [ $# -ne 1 ];then      echo -e "$Usage: $0 URL\n"      exit 1;fi echo Broken links: mkdir /tmp/$$.lynxcd /tmp/$$.lynx # 以递归的方式访问网站页面并建立网站中所有超链接的列表lynx -traversal $1 > /dev/nullcount=0; #reject.dat文件包含所有的链接sort -u reject.dat >…
http://note.youdao.com/noteshare?id=ef705313b714cf3a17cfe17dc80956a3…
centos   shell脚本编程1 正则  shell脚本结构  read命令  date命令的用法  shell中的逻辑判断  if 判断文件.目录属性  shell数组简单用法 $( ) 和${ } 和$(( )) 与  sh -n  sh -x  sh -v 第三十五节课 Shebang/Sha-bang在计算机科学中, Shebang (也称为Hashbang)是一个由井号和叹号构成的字符串行(#!), 其出现在文本文件的第一行的前两个字符. 在文件中存在Shebang的情况下, 类…
曾经我刚开始学习 shell 脚本时,除了知道用 echo 输出一些信息外,并不知道其他方法,仅仅依赖 echo 来查找错误,比较难调试且过程繁琐.效率低下.本文介绍下我常用的一些 shell 脚本调试方法,希望能对 shell 的初学者有所帮助. sh 命令调试选项(推荐) 选项 说明 -c 从-c后的字符串中读取命令. -n 检查是否存在语法错误,但不会实际执行. -x 将执行的每一条命令和结果依次打印出来. -v 执行过的脚本命令打印到标准输出. 使用方法: 字符串读取脚本. $ sh -…
转至:https://blog.csdn.net/yjgithub/article/details/80908079 目录 一.简介 二.sh -x 脚本名.sh 三.set -x 一.简介 使用sh -x调试shell脚本 "-x"选项可用来跟踪脚本的执行,是调试shell脚本的强有力工具."-x"选项使shell在执行脚本的过程中把它实际执行的每一个命令行显示出来,并且在行首显示一个"+"号. "+"号后面显示的是经过了变…
shell 脚本入门到精通(中级) 一.shell 脚本的执行 二.输出格式化 三.数据类型 四.重定向 五.变量 一.shell 脚本的执行 1. 脚本执行的4种方法 $ ls /tmp/test.sh /tmp/test.sh #!/bin/bash # test.sh # 这里借助SHLVL这个变量,SHLVL可以显示shell的层级, # 每启动一个shell,这个值就加1 echo "shell level :$SHLVL" echo "hello world!&q…
转自:http://itlab.idcquan.com/linux/SHELL/727128.html 参考:https://linux.cn/article-8045-1.html 本文全面系统地介绍了shell脚本调试技术,包括使用echo, tee, trap等命令输出关键信息,跟踪变量的值,在脚本中植入调试钩子,使用"-n"选项进行shell脚本的语法检查, 使用"-x"选项实现shell脚本逐条语句的跟踪,巧妙地利用shell的内置变量增强"-x…
原文网址:http://zhu8337797.blog.163.com/blog/static/170617549201122512712136/ 命 令 选 项 功 能 bash –x 脚本名 回显 在变量替换之后.执行命令之前,显示脚本的每一行 bash –v 脚本名 详细 在执行之前,按输入的原样打印脚本中各行 bash –n 脚本名 不执行 解释但不执行命令 set –x 打开回显 跟踪脚本的执行 set +x 关闭回显 关闭跟踪功能 --------------------------…
转自:http://www.ibm.com/developerworks/cn/linux/l-cn-shell-debug/ 一. 前言 shell编程在unix/linux世界中使用得非常广泛,熟练掌握shell编程也是成为一名优秀的unix/linux开发者和系统管理员的必经之路.脚本调试的主要工作就是发现引发脚本错误的原因以及在脚本源代码中定位发生错误的行,常用的手段包括分析输出的错误信息,通过在脚本中加入调试语句,输出调试信息来辅助诊断错误,利用调试工具等.但与其它高级语言相比,she…
Shell脚本调试选项 Shell本身提供一些调试方法选项: -n,读一遍脚本中的命令但不执行,用于检查脚本中的语法错误. -v,一边执行脚本,一边将执行过的脚本命令打印到标准输出. -x,提供跟踪执行信息,将执行的每一条命令和结果依次打印出来. 使用这些选项有三种方法 1.在命令行提供参数:$sh -x script.sh 2.脚本开头提供参数:#!/bin/sh -x 3.在脚本中用set命令启用or禁用参数:其中set -x表启用,set +x表禁用.注意避免几种调试选项混用. bashd…
本文转载自:https://www.ibm.com/developerworks/cn/linux/l-cn-shell-debug/ Shell脚本调试技术 本文全面系统地介绍了shell脚本调试技术,包括使用echo, tee, trap等命令输出关键信息,跟踪变量的值,在脚本中植入调试钩子,使用“-n”选项进行shell脚本的语法检查, 使用“-x”选项实现shell脚本逐条语句的跟踪,巧妙地利用shell的内置变量增强“-x”选项的输出信息等.   一. 前言 shell编程在unix/…
http://www.ibm.com/developerworks/cn/linux/l-cn-shell-debug/ 一. 前言 shell编程在unix/linux世界中使用得非常广泛,熟练掌握shell编程也是成为一名优秀的unix/linux开发者和系统管理员的必经之路.脚本调试的主要工作就是发现引发脚本错误的原因以及在脚本源代码中定位发生错误的行,常用的手段包括分析输出的错误信息,通过在脚本中加入调试语句,输出调试信息来辅助诊断错误,利用调试工具等.但与其它高级语言相比,shell解…
Shell脚本调试选项 Shell本身提供一些调试方法选项: -n,读一遍脚本中的命令但不执行,用于检查脚本中的语法错误. -v,一边执行脚本,一边将执行过的脚本命令打印到标准输出. -x,提供跟踪执行信息,将执行的每一条命令和结果依次打印出来. 使用这些选项有三种方法 1.在命令行提供参数:$sh -x script.sh 2.脚本开头提供参数:#!/bin/sh -x 3.在脚本中用set命令启用or禁用参数:其中set -x表启用,set +x表禁用.注意避免几种调试选项混用. Shell…
请参考文章:http://www.ibm.com/developerworks/cn/linux/l-cn-shell-debug/index.html 读后的感觉,还是用shell的选项灵活,方便. trap方式在捕捉ERR信号的时候比较方便. shell的执行选项 -n: 只是读取脚本,但不执行命令.用于在执行脚本前确认脚本中是否存在语法错误. -c:选项使shell解释器从一个字符串中而不是从一个文件中读取并执行shell命令.当需要临时测试一小段脚本的执行结果时,可以使用这个选项. -x…
1.在命令行提供参数:$sh -x script.sh   但是有的shell脚本只能用 ./xxx.sh的方式运行,不能用sh命令解析执行.则此方法会报错.2.脚本开头提供参数:#!/bin/sh -x3.在脚本中用set命令启用or禁用参数:其中set -x表启用,set +x表禁用…
1.命令替换:`` 反向单引号,也称重音符.键盘上和~键在一起的那个键呦,千万不要敲成单引号. A. 使用了``后,shell首先替换输出中``括起来的date命令,然后执行整个输出命令. B.命令替换还可以用于在变量中存储命令输出,如下: 变量ctr将包含当前目录中名字以.txt结尾的文件的计数. 2.expr 大部分shell不支持数字变量,所有变量会被作为字符串.如var=25,变量var中包含的是字符2和字符5组成的字符串,而不是数字25. Expr命令用来评估算术表达式,命令的输出发送…
Q:1 Shell脚本是什么.它是必需的吗? 答:一个Shell脚本是一个文本文件,包含一个或多个命令.作为系统管理员,我们经常需要使用多个命令来完成一项任务,我们可以添加这些所有命令在一个文本文件(Shell脚本)来完成这些日常工作任务. Q:2 什么是默认登录shell,如何改变指定用户的登录shell 答:在Linux操作系统,“/bin/bash”是默认登录shell,是在创建用户时分配的.使用chsh命令可以改变默认的shell.示例如下所示: # chsh <用户名> -s <…