BASH 的调试手段

平时在写 BASH 脚本时,总是会碰到让人抓狂的 BUG。和 C/C++ 这么丰富的调试工具相比,BASH 又有什么调试手段呢?

echo/print (普通技)

打印一些变量,或者提示信息。这应该是一个通用的方法了。在 BASH 里,我们可以简单的用 echo,或者 print 来输出一些 log,或者加一些 loglevel 来过滤一些 log。这里贴一下我平常用的函数:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
_loglevel=2

DIE() {
echo "Critical: $1" >&2
exit 1
}

INFO() {
[ $_loglevel -ge 2 ] && echo "INFO: $1" >&2
}

ERROR() {
[ $_loglevel -ge 1 ] && echo "ERROR: $1" >&2
}

阅读全文