深入探索 bash 调试器与管理
1. bash 调试器概述
bashdb 是一个功能实用的 bash 脚本调试器,虽然它相对简单,但能帮助我们理解构建 shell 脚本调试器的基本原理。其在断点处理方面增加了一定复杂度,不过这是非常值得的,能显示脚本和断点位置是调试器的重要特性。
2. 断点条件
bashdb 提供了一种通过断点条件跳出脚本的方法。断点条件是用户可以指定的字符串,会被当作命令进行评估。如果条件为真(即返回退出状态 0),调试器将进入命令循环。
例如,可以在变量达到特定值时中断,如(( $x < 0 ));或者当特定文本写入文件时中断,如grep string file。设置断点条件使用bc string命令,移除则使用不带参数的bc命令。
3. 执行跟踪
调试器的最后一个特性是执行跟踪,可通过x命令启用。_xtrace函数通过将_trace变量设置为其当前值的逻辑非,来切换执行跟踪的开关,初始值为 0(关闭)。
# Toggle execution trace on/off function _xtrace { let _trace="! $_trace" _msg "Execution trace " if (( $_trace )); then