写出健壮的Bash脚本

转自: 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未成功赋值时,是否冷汗都下来了?

转载于:https://my.oschina.net/abcfy2/blog/305485

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值