Shell编程:shell script 的追踪与 debug
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相关推荐
- Shell编程: Shell 变量
深入浅出Shell编程: Shell 变量 先不要管Shell的版本,来看看Shell 变量,在Shell中有三种变量:系统变量,环境变量,用户变量.其中用户变量在编程过程中使用最多,系统变量在对参数 ...
- shell script 的追踪与 debug
脚本在执行之前就怕出问题.Linux提供了不需要通过直接执行该脚本就判断是否有问题. [root@localhost ]# sh -nvx scripts.sh 参数: -n ...
- Shell 编程 Shell Script
Shell Script简介 什么是shell script? shell:与内核通信的工具: script:脚本: shell script:针对shell所写的脚本. 利用shell功能所写的一个 ...
- 深入浅出Shell编程: Shell 变量【ZT】
先不要管Shell的版本,来看看Shell 变量,在Shell中有三种变量:系统变量,环境变量,用户变量.其中用户变量在编程过程中使用最多,系统变量在对参数判断和命令返回值判断会使用,环境变量主要是在 ...
- Linux编程 20 shell编程(shell脚本创建,echo显示信息)
一概述 前面19章里已经掌握了linux系统和命令行的基础知识,从本章开始继续学习shell脚本的基础知识.在大量编辑shell脚本前,先来学习下一些基本概念. 1.1 使用多个命令 Shell ...
- Shell编程——shell常用命令
浏览器标签页的切换:Ctrl+Tab [终端] 打开终端快捷建:Ctrl+Alt+t 关闭终端快捷键:Ctrl+Shift+q 打开新的终端标签页快捷键:Ctrl+Shift+t 关闭终端标签页快捷键 ...
- shell 编程--shell的扩展功能(字符串切割与掐头去尾)、通配符、设置语言字符集
一.通配符 1)通配符 通配符 描述 * 匹配任意字符串 ? 匹配任意单个字符 [-] 匹配括号中的任意单个字符,使用-可以表示连续的字符:[ 后面使用!或^ 表示匹配不在括号中的所有其他内容:[] ...
- shell编程——Shell的字符串拼接
Shell定义字符串,建议值使用双引号 name=jackin echo $name name='jackin' echo $name name="jackin" echo $na ...
- linux 如何跳出循环函数,(三)Linux Shell编程——Shell常用命令(输出、判断、循环、函数、包含)(示例代码)...
3. 常用命令 3.1 输出 3.1.1 echo命令 echo是Shell的一个内部指令,用于在屏幕上打印出指定的字符串.命令格式: echo arg name="coding" ...
最新文章
- CSS+HTML大白
- 为什么携程要做好持续交付?
- 爱因斯坦牛顿达尔文投胎中国后
- shiro教程:session管理
- vue常见知识点整理
- asp.net 得到上一页地址
- 男生的哪个“不要”是真的不要?
- 超详细 图解 : IntelliJ IDEA 逆向生成 JAVA 实体类
- 软件项目经理怎么做?
- 每天一个linux命令(59):rcp命令
- Struts2中Struts.xml的作用
- 干货|软件测试简历的编写以及注意事项
- dos命令行设置网络优先级_实用批处理:不用下软件就能 批量改名,修复网络,删除小文件...
- eXosip认证头域authentication
- ES报错处理-mapper [xx.xx] of different type, current_type [text], merged_type [keyword]
- 中职计算机平面设计主要学什么,四川省计算机平面设计专业学什么
- ubuntu显示扩展名
- java中用new创建一个对象的过程解析
- Windows CMD命令行一启动就闪退问题解决
- 程序人生 Hello’s P2P
热门文章
- 信息学奥赛C++语言:幸运奶牛
- 书籍《循环经济之道》-观后感-2021年12月
- 360天擎默认卸载密码_用好360(四)
- java secondtotime_Java中的LocalTime toSecondOfDay()方法
- PIP 安装 numpy
- 【Transformer】CLS(classification)有什么用?
- Python zip() 函数--多个迭代器取元素组合成一个新的迭代器
- 201312-1 出现次数最多的数
- [流体力学] 推导柱坐标系下的连续性方程
- mysql itpub_mysql