几个调试shell脚本时常用小技巧。
xtrace
打印执行的每一条命令1
2
3
4
5
6
7set -o xtrace # 打开
set +o xtrace # 关闭
或者这样
set -x
set +xe
出错后立即停止执行。每一条命令在执行成功后多会返回0,返回非0时代表出错。打开e之后,遇到非0返回值后会立即结束,而不会继续执行,这在一条命令需要在上一条成功执行的基础上才能执行时很有用。在某些时候也不会关心执行结果,比如,删除一个文件或文件夹,当删除目标不存在时,返回的就是一个非0结果,这个时候也不影响,所以,按需打开/关闭。1
2
3set -e # 打开
set +e # 关闭