在bash
中跟踪函数时,我可以从1
DEBUG
处理程序返回非零值(例如,trap
)以跳过下一个的执行线。
此外,我可以返回值2
来执行return
语句以返回该函数,而无需执行其余的函数体
但是,我希望能够退出当前功能,而不是通过“返回”,而是通过一次执行功能主体的其余部分来实现(而不是通过逐行执行直到正文结束。
这可能吗?
答案 0 :(得分:0)
确实有点乏味,但是似乎可以使用Bash提供的现有调用堆栈信息来完成。
这是方法。
继续执行DEBUG
陷阱处理程序,直到到达下一个调用堆栈帧F2,该帧位于当前帧F1的正下方,并停止在大于或等于{{1}的行号上}保存在F2中。要解决递归调用,需要'...等于'检查。