2012-05-01 122 views
2

我正在編寫一個lua腳本,我必須執行兩個shell命令,這兩個shell命令都會保留回顯信息,直到以^ C終止。Lua和os.execute返回

這意味着os.execute是無用的,因爲它等待返回碼,它永遠不會來,並凍結整個腳本。你對如何完成這項工作有任何想法嗎?一個好的解決方案是不要求os.execute返回任何值,所以它會發送命令並繼續前進,但我認爲這是不可能的。另一個是多線程,我沒有能夠使它工作。

我也必須有能力通過使用^ C或lua方法以某種方式停止兩個無限循環。該腳本使用Lua 5.1.4在iPhone(iOS 5.0.1/root)上運行。

回答

2
os.execute('yourcommand&') 

這應該在後臺運行命令並立即返回到您的Lua腳本。

如果你想要更復雜的過程控制,你可能要用本地代碼編寫它。

+0

那麼這似乎工作,但我發現了另一個解決方案。 io.popen(「command」)在另一個窗口中運行它。兩者唯一的問題是你需要爲每個命令按^ C一次,而不是一次。當他們只有兩個時,這並不重要。 – DaKnOb