深入探索bash调试器与管理
1. bash调试器(bashdb)概述
bashdb是一个用于调试shell脚本的工具,它具备一些重要特性,虽然在处理断点时增加了一定复杂度,但这些特性是非常值得的。能够显示脚本和断点位置是任何调试器的重要功能。
2. 断点条件(Break conditions)
bashdb提供了另一种跳出脚本执行的方法——断点条件。这是用户可以指定的一个字符串,它会被当作命令进行求值。如果该条件为真(即返回退出状态码0),调试器将进入命令循环。
由于断点条件可以是任何shell代码行,因此在测试内容上具有很大的灵活性。例如,可以在变量达到特定值时中断,如(( $x < 0 ));或者当特定文本写入文件时中断,如grep string file。
设置断点条件的命令是bc string,移除断点条件则只需输入bc,这会将断点条件设置为空字符串,从而忽略该条件。
_steptrap函数仅在$_brcond不为空时对其进行求值。如果断点条件求值结果为0,则if子句为真,_steptrap会调用命令循环。
3. 执行跟踪(Execution tracing)
调试器的最后一个特性是执行跟踪,可通过x命令启用。_xtrace函