Lua中无需Shell的等效函数`io.popen`

Lua中的io.popen对于捕获命令的标准输出非常有用,但是它依赖于/bin/sh进行单词拆分、通配符扩展等操作。

我可以这样做,它很好用

-- 不幸的是,这将使用/bin/sh
local command = "ls -1";

local ph = io.popen(command, "r")

while true do
   local line = ph:read()
   if line == nil then
      break
   end
   io.write("我读了一行! " .. line .. "\n")
end

io.write("完成读取行!\n")

是否有一些函数是spawn*fork/exec*的轻量包装器,我可以将{"ls","-1"}传递给它,以避免使用Shell呢?

点赞