在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函数来读取它。

如果语言本身没有提供捕获标准输出和错误,那我就是这么做的。