在 LUA 中读写输出命令

我正在制作一个调用lua服务的项目。 在该服务中,我执行一个命令,然后将命令的输出写入文件。 最后,我读取整个文件并从中取出1行。

现在我已经开始编程,但我有一个非常奇怪的错误,我想..

当我使用popen执行命令时,没有输出到文件。但我看到命令已经执行了。当我进行第二次popen时,我们将输出写入文件。但问题是,我不想执行2次命令。

所以,主要问题和问题是。如何修复我的代码,使脚本将输出写入文件,然后读取每行内容。只有一个popen。

这是我的代码:

    services.CreateVirtualDesktop = function(me, headers, query, data)
      --  local handle = io.popen("sudo -u pi tightvncserver")
      file = io.open("/home/pi/OutputVncCommand.txt","w")
      handle = io.popen("sudo -u pi tightvncserver")
      output = file:write(handle:read("*all"))
      handle:close()
      io.close(file)

     files = {}
     f = assert(io.open("/home/pi/OutputVncCommand.txt","r"))
      if not f then return files end
        local k = 1
        for line in f:lines() do
          files[k] = line
          k = k + 1
        end
      f:close()
      return 200,files[8]
    end
点赞