scripts 在运行之前,最怕的就是出现语法错误的问题了!那么我们如何 debug 呢?有没有办法不需要透过直接运行该 scripts 就可以来判断是否有问题呢?呵呵!当然是有的!我们就直接以 bash 的相关参数来进行判断吧!

[root@www ~]# sh [-nvx] scripts.sh

选项与参数:
-n  :不要运行 script,仅查询语法的问题;
-v  :再运行 sccript 前,先将 scripts 的内容输出到萤幕上;
-x  :将使用到的 script 内容显示到萤幕上,这是很有用的参数!

范例一:测试 sh16.sh 有无语法的问题?

[root@www ~]# sh -n sh16.sh
# 若语法没有问题,则不会显示任何资讯!

范例二:将 sh15.sh 的运行过程全部列出来~

[root@www ~]# sh -x sh15.sh
+ PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/root/bin
+ export PATH
+ for animal in dog cat elephant
+ echo 'There are dogs.... '
There are dogs....
+ for animal in dog cat elephant
+ echo 'There are cats.... '
There are cats....
+ for animal in dog cat elephant
+ echo 'There are elephants.... '
There are elephants....

请注意,上面范例二中运行的结果并不会有颜色的显示!鸟哥为了方便说明所以在 + 号之后的数据都加上颜色了! 在输出的信息中,在加号后面的数据其实都是命令串,由於 sh -x 的方式来将命令运行过程也显示出来, 如此使用者可以判断程序码运行到哪一段时会出现相关的资讯!这个功能非常的棒!透过显示完整的命令串, 你就能够依据输出的错误资讯来订正你的脚本了!

熟悉 sh 的用法,将可以使你在管理 Linux 的过程中得心应手!至於在 Shell scripts 的学习方法上面,需要『多看、多模仿、并加以修改成自己的样式!』 是最快的学习手段了!网络上有相当多的朋友在开发一些相当有用的 scripts ,若是你可以将对方的 scripts 拿来,并且改成适合自己主机的样子!那么学习的效果会是最快的呢!

另外,我们 Linux 系统本来就有很多的服务启动脚本,如果你想要知道每个 script 所代表的功能是什么? 可以直接以 vim 进入该 script 去查阅一下,通常立刻就知道该 script 的目的了。 举例来说,我们之前一直提到的 /etc/init.d/syslog ,这个 script 是干嘛用的? 利用 vi 去查阅最前面的几行字,他出现如下资讯:

# description: Syslog is the facility by which many daemons use to log \
# messages to various system log files.  It is a good idea to always \
# run syslog.
### BEGIN INIT INFO
# Provides: $syslog
### END INIT INFO

简单的说,这个脚本在启动一个名为 syslog 的常驻程序 (daemon),这个常驻程序可以帮助很多系统服务记载她们的登录档 (log file), 我们的 Linux 建议你一直启动 syslog 是个好主意!嘿嘿!简单的看看您就知道啥是啥啦!

来源:http://vbird.dic.ksu.edu.tw/linux_basic/0340bashshell-scripts_6.php

Shell编程:shell script 的追踪与 debug相关推荐

  1. Shell编程: Shell 变量

    深入浅出Shell编程: Shell 变量 先不要管Shell的版本,来看看Shell 变量,在Shell中有三种变量:系统变量,环境变量,用户变量.其中用户变量在编程过程中使用最多,系统变量在对参数 ...

  2. shell script 的追踪与 debug

    脚本在执行之前就怕出问题.Linux提供了不需要通过直接执行该脚本就判断是否有问题.  [root@localhost ]# sh  -nvx  scripts.sh      参数:      -n ...

  3. Shell 编程 Shell Script

    Shell Script简介 什么是shell script? shell:与内核通信的工具: script:脚本: shell script:针对shell所写的脚本. 利用shell功能所写的一个 ...

  4. 深入浅出Shell编程: Shell 变量【ZT】

    先不要管Shell的版本,来看看Shell 变量,在Shell中有三种变量:系统变量,环境变量,用户变量.其中用户变量在编程过程中使用最多,系统变量在对参数判断和命令返回值判断会使用,环境变量主要是在 ...

  5. Linux编程 20 shell编程(shell脚本创建,echo显示信息)

    一概述 前面19章里已经掌握了linux系统和命令行的基础知识,从本章开始继续学习shell脚本的基础知识.在大量编辑shell脚本前,先来学习下一些基本概念. 1.1    使用多个命令 Shell ...

  6. Shell编程——shell常用命令

    浏览器标签页的切换:Ctrl+Tab [终端] 打开终端快捷建:Ctrl+Alt+t 关闭终端快捷键:Ctrl+Shift+q 打开新的终端标签页快捷键:Ctrl+Shift+t 关闭终端标签页快捷键 ...

  7. shell 编程--shell的扩展功能(字符串切割与掐头去尾)、通配符、设置语言字符集

    一.通配符 1)通配符 通配符 描述 * 匹配任意字符串 ? 匹配任意单个字符 [-] 匹配括号中的任意单个字符,使用-可以表示连续的字符:[ 后面使用!或^ 表示匹配不在括号中的所有其他内容:[] ...

  8. shell编程——Shell的字符串拼接

    Shell定义字符串,建议值使用双引号 name=jackin echo $name name='jackin' echo $name name="jackin" echo $na ...

  9. linux 如何跳出循环函数,(三)Linux Shell编程——Shell常用命令(输出、判断、循环、函数、包含)(示例代码)...

    3. 常用命令 3.1 输出 3.1.1 echo命令 echo是Shell的一个内部指令,用于在屏幕上打印出指定的字符串.命令格式: echo arg name="coding" ...

最新文章

  1. CSS+HTML大白
  2. 为什么携程要做好持续交付?
  3. 爱因斯坦牛顿达尔文投胎中国后
  4. shiro教程:session管理
  5. vue常见知识点整理
  6. asp.net 得到上一页地址
  7. 男生的哪个“不要”是真的不要?
  8. 超详细 图解 : IntelliJ IDEA 逆向生成 JAVA 实体类
  9. 软件项目经理怎么做?
  10. 每天一个linux命令(59):rcp命令
  11. Struts2中Struts.xml的作用
  12. 干货|软件测试简历的编写以及注意事项
  13. dos命令行设置网络优先级_实用批处理:不用下软件就能 批量改名,修复网络,删除小文件...
  14. eXosip认证头域authentication
  15. ES报错处理-mapper [xx.xx] of different type, current_type [text], merged_type [keyword]
  16. 中职计算机平面设计主要学什么,四川省计算机平面设计专业学什么
  17. ubuntu显示扩展名
  18. java中用new创建一个对象的过程解析
  19. Windows CMD命令行一启动就闪退问题解决
  20. 程序人生 Hello’s P2P

热门文章

  1. 信息学奥赛C++语言:幸运奶牛
  2. 书籍《循环经济之道》-观后感-2021年12月
  3. 360天擎默认卸载密码_用好360(四)
  4. java secondtotime_Java中的LocalTime toSecondOfDay()方法
  5. PIP 安装 numpy
  6. 【Transformer】CLS(classification)有什么用?
  7. Python zip() 函数--多个迭代器取元素组合成一个新的迭代器
  8. 201312-1 出现次数最多的数
  9. [流体力学] 推导柱坐标系下的连续性方程
  10. mysql itpub_mysql