我在KSH中编写了一个交互式shell脚本,其中有一个主菜单,其中的选项将不同的函数作为代码片段存储在单独的文件中。交互式shell脚本:递归太深
该脚本工作正常,但经过一段时间的脚本“递归太深”
有它发生时没有明显的模式退出,它可以发生在使用任何功能,在任何时间。唯一明确的模式是,我使用脚本的时间越长,导致错误的可能性就越大。
在脚本中没有递归函数,所以我假设我创建了一段时间后变得太大的回调循环。
是否有我可以调用的函数将清除已建立的任何代码队列? (我是新来的shell脚本 - 我记得在jQuery的动画的clearQueue功能)
我试图找到没有成功回调循环,这样一个解决方法是诱人的
感谢
一旦功能处理无论你想要做什么任务,然后会发生什么,再次调用“菜单”功能?然后你有一个间接递归的“菜单”功能,它迟早会变得很深。尝试使用循环来显示菜单。 –
是的,在每个任务函数结束时,它调用菜单函数。恐怕我不明白为什么这会导致递归累积...我不确定你的意思是使用循环调用菜单而不是回调......这将如何看待?对于信息我的菜单包括回应菜单列表,有一个输入设置选择变量,然后一堆如果行动。如果这一切都被反复调用,那么所有这些如果最终会堆叠起来呢? –
然后只是改变,让任务函数静静地退出,并返回到菜单功能,然后循环显示菜单并要求再次选择。 –