第十三章 shell script 的追踪与 debug
来源:互联网 发布:程序员未来的发展趋势 编辑:程序博客网 时间:2024/05/22 12:10
scripts 在运行之前,最怕的就是出现语法错误的问题了!那么我们如何 debug 呢?有没有办法不需要透过直接运行该 scripts 就可以来判断是否有问题呢?呵呵!当然是有的!我们就直接以 bash 的相关参数来进行判断吧!
请注意,上面范例二中运行的结果并不会有颜色的显示!鸟哥为了方便说明所以在 + 号之后的数据都加上颜色了! 在输出的信息中,在加号后面的数据其实都是命令串,由於 sh -x 的方式来将命令运行过程也显示出来, 如此使用者可以判断程序码运行到哪一段时会出现相关的资讯!这个功能非常的棒!透过显示完整的命令串, 你就能够依据输出的错误资讯来订正你的脚本了!
熟悉 sh 的用法,将可以使你在管理 Linux 的过程中得心应手!至於在 Shell scripts 的学习方法上面,需要『多看、多模仿、并加以修改成自己的样式!』 是最快的学习手段了!网络上有相当多的朋友在开发一些相当有用的 scripts ,若是你可以将对方的 scripts 拿来,并且改成适合自己主机的样子!那么学习的效果会是最快的呢!
另外,我们 Linux 系统本来就有很多的服务启动脚本,如果你想要知道每个 script 所代表的功能是什么? 可以直接以 vim 进入该 script 去查阅一下,通常立刻就知道该 script 的目的了。 举例来说,我们之前一直提到的 /etc/init.d/syslog ,这个 script 是干嘛用的? 利用 vi 去查阅最前面的几行字,他出现如下资讯:
简单的说,这个脚本在启动一个名为 syslog 的常驻程序 (daemon),这个常驻程序可以帮助很多系统服务记载她们的登录档 (log file), 我们的 Linux 建议你一直启动 syslog 是个好主意!嘿嘿!简单的看看您就知道啥是啥啦!
另外,本章所有的范例都可以在 http://vbird.dic.ksu.edu.tw/linux_basic/0340bashshell-scripts/scripts-v3.tar.bz2 里头找到喔!加油~
转自:http://vbird.dic.ksu.edu.tw/linux_basic/0340bashshell-scripts_6.php
[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/scripts-v3.tar.bz2 里头找到喔!加油~
转自:http://vbird.dic.ksu.edu.tw/linux_basic/0340bashshell-scripts_6.php
0 0
- 第十三章 shell script 的追踪与 debug
- shell script 的追踪与 debug
- shell script 的追踪与 debug
- Shell Script - 追踪与debug
- shell script的判断,函数,循环,追踪与debug
- 第十三章 shell script
- shell script 追踪与调试
- 第十三章 简单的 shell script 练习
- shell script的debug
- linux边学边记---Shell脚本的追踪与debug
- shell script 的调试 debug
- shell script追踪和调试
- 鸟哥私房菜 第十三章 学习shell script
- Shell脚本的追踪与调试
- shell的追踪与调试选项
- Shell配置文件与Shell Script
- Linux 学习笔记 -- 第三部分 学习 shell 与 shell script -- 第13章 学习 shell script
- 第三部分 学习shell与shell script的笔记(未完)
- 第十三章 shell条件判断式
- Java中print、printf、println的区别
- 第十三章 shell回圈 (loop)
- Spring Boot 入门
- 初学正则表达式
- 第十三章 shell script 的追踪与 debug
- MySQL if case语句使用总结
- 第十四章 Linux 的账号与群组
- atom markdown转换PDF 解决AssertionError: html-pdf: Failed to load PhantomJS module
- mysql 存储过程例子
- MTK SmartPhone Record-(4)
- 第十四章 账号管理
- Deep Learning Face Attributes in the Wild
- 第十四章 主机的细部权限规划:ACL 的使用