我在KSH中編寫了一個交互式shell腳本,其中有一個主菜單,其中的選項將不同的函數作爲代碼片段存儲在單獨的文件中。交互式shell腳本:遞歸太深
該腳本工作正常,但經過一段時間的腳本「遞歸太深」
有它發生時沒有明顯的模式退出,它可以發生在使用任何功能,在任何時間。唯一明確的模式是,我使用腳本的時間越長,導致錯誤的可能性就越大。
在腳本中沒有遞歸函數,所以我假設我創建了一段時間後變得太大的回調循環。
是否有我可以調用的函數將清除已建立的任何代碼隊列? (我是新來的shell腳本 - 我記得在jQuery的動畫的clearQueue功能)
我試圖找到沒有成功回調循環,這樣一個解決方法是誘人的
感謝
一旦功能處理無論你想要做什麼任務,然後會發生什麼,再次調用「菜單」功能?然後你有一個間接遞歸的「菜單」功能,它遲早會變得很深。嘗試使用循環來顯示菜單。 –
是的,在每個任務函數結束時,它調用菜單函數。恐怕我不明白爲什麼這會導致遞歸累積...我不確定你的意思是使用循環調用菜單而不是回調......這將如何看待?對於信息我的菜單包括迴應菜單列表,有一個輸入設置選擇變量,然後一堆如果行動。如果這一切都被反覆調用,那麼所有這些如果最終會堆疊起來呢? –
然後只是改變,讓任務函數靜靜地退出,並返回到菜單功能,然後循環顯示菜單並要求再次選擇。 –