在Lua中取回os.execute的输出
当我在Lua中执行“os.execute”时,控制台很快popup,执行命令,然后closures。 但有没有办法找回只使用标准的Lua库的控制台输出?
我想你想要这个http://pgl.yoyo.org/luai/i/io.popen io.popen。 但它并不总是编译进去。
如果你有io.popen,那么这就是我使用的:
函数os.capture(cmd,raw) 本地f =断言(io.popen(cmd,'r')) local s = assert(f:read('* a')) F:close()方法 如果原始,则返回结束 s = string.gsub(s,'^%s +','') s = string.gsub(s,'%s + $','') s = string.gsub(s,'[\ n \ r] +','') 返回s 结束
如果你没有io.popen,那么可能popen(3)在你的系统上不可用,而且你在酸奶中。 但所有unix / mac / windows的Lua端口将有io.popen。
我不是特别了解Lua,但通常可以运行命令:
comd >comd.txt 2>&1
捕获文件comd.txt的输出和错误,然后使用语言文件I / O函数来读取它。
如果语言本身没有提供捕获标准输出和错误,那我就是这么做的。