Shell 是很简单,但是调试还是一定需要的。

跟踪
显示行号

跟踪

显示行号

设置环境变量 PS4

export PS4='+${BASH_SOURCE}:${LINENO}:${FUNCNAME[0]}:'

现在,使用 "bash -x" 执行脚本文件就能看到执行到的行号,示例:

...
+/usr/lib/build/build:1365::egrep '^#[       ]*needsbinariesforbuild[       ]*$'
+/usr/lib/build/build:1366::set -- init_buildsystem --clean /var/tmp/build-root/.build-srcdir/uuid.spec --debug
+/usr/lib/build/build:1367::echo 'init_buildsystem --clean /var/tmp/build-root/.build-srcdir/uuid.spec --debug ...'
init_buildsystem --clean /var/tmp/build-root/.build-srcdir/uuid.spec --debug ...
+/usr/lib/build/build:1368::init_buildsystem --clean /var/tmp/build-root/.build-srcdir/uuid.spec --debug
expanding package dependencies...
you must specfiy a depfile!
+/usr/lib/build/build:1368::cleanup_and_exit 1
+/usr/lib/build/build:220:cleanup_and_exit:trap EXIT
...