交互式shell脚本:递归太深

时间:2017-08-14 11:34:09

标签: shell recursion

我在KSH编写了一个交互式shell脚本,有一个主菜单,其中的选项调用不同的函数存储为单独文件的代码片段。

该脚本工作正常,但过了一段时间后,脚本以'递归过深'退出

没有明显的模式发生时,任何时候都可以使用任何功能。唯一明确的模式是我使用脚本的时间越长,就越有可能导致错误。

脚本中没有递归函数,所以我假设我在某个地方创建了一个回调循环,过了一段时间后会变得太大。

是否有一个我可以调用的函数可以清除已建立的任何代码队列? (我是shell脚本的新手 - 我记得jquery动画中的clearQueue函数)

我试图找回回调循环但没有成功,所以解决方法很诱人

感谢

2 个答案:

答案 0 :(得分:1)

在伪代码中,您可以执行类似

的操作
while true; do
    print_menu
    val=get_input
    case $val in
        1)
            do_task_1
            ;;
        ; etc...
    end
done

完成do_task_1后,函数或脚本或其它任何内容返回,case语句结束,循环迭代打印菜单并再次获取输入。

答案 1 :(得分:0)

结果出现递归错误是因为我提取的文件太多次而且超出了文件操作员限制

我重新编写了它,所以我只需要一次源文件就可以了。