2012-05-01 22 views
2

私はluaスクリプトを書いており、^ Cで終了するまでエコー情報を保持する2つのシェルコマンドを実行する必要があります。Luaとos.execute return

これは、決して来ないリターンコードを待つので、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を1回押さなければならないということです。彼らが2つだけの時には本当に重要なことではありません。 – DaKnOb