我已经考虑了一点lua的协程,但它在执行shell脚本的过程中无法产生,所以我没有挖掘。
答案 0 :(得分:3)
可悲的是,Lua没有提供开箱即用的支撑,所以你必须在阅读和写作之间做出选择。您可以获得的最接近的是迭代:lines()
过程的io.popen()
:
for line in io.popen('/some/other/process'):lines() do
-- previous line will block until output is available
if line:match '^some regex' then
-- match found! do some stuff
end
end -- EOF reached
如果您有权访问C模块,luaposix提供了pipe()
到posix.pipe()
的接口
但是,请记住,Lua可能不是最合适的工具。恕我直言,你最好使用TCL或Python,甚至是bash脚本。