码迷,mamicode.com
首页 > 其他好文 > 详细

写出健壮的Bash脚本

时间:2014-08-22 13:09:29      阅读:152      评论:0      收藏:0      [点我收藏+]

标签:http   使用   os   ar   art   代码   sp   c   app   

转自: http://article.yeeyan.org/view/58906/257928

顺带一提,给bash脚本传递特殊的bash开关,大致有以下三个方法:

bash命令行上传递

范例:

bash -x script.sh

在解释器上直接指定

范例:

#!/bin/bash -e

执行:

chmod +x script.sh
./script.sh

在脚本中使用set

范例:

#!/bin/bash -e
#...
set +e
#这里的代码遇到非零返回时不退出脚本
set -e
# 继续执行
#注意加减号,+代表关闭某个开关,-代表增加某个开关,按照bash -switch这样的方式理解就好了,否则很容易加减号搞混

总结几个很有用的参数

-e

最频繁使用的参数,为了脚本的健壮性,理应在所有的解释器开头都加上这个参数,当脚本中任意一行出现非零退出码时,立刻中断脚本执行,可以有效的防止错误滚雪球。

-x

在调试阶段频繁使用的参数,可以打印出脚本详细执行过程,用于检查运行中的变量

-n

尽管绝大多数情况下-x用的更多,但是对于某些危险的操作(如rm),-n显得更有用,-n仅打印脚本将要执行的操作,用于检测变量,并不实际执行。当然了,无法检测运行中生成的变量。

-u

检测脚本中变量是否赋值,对于未赋值的变量不予通过,除了-e参数之外,另一个更有用的参数,对于未赋值的变量会中止执行。想想看,rm -fr "$app_root/usr",当$app_root未成功赋值时,是否冷汗都下来了?

写出健壮的Bash脚本

标签:http   使用   os   ar   art   代码   sp   c   app   

原文地址:http://my.oschina.net/abcfy2/blog/305485

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!