lua - 什么 lua 功能可以用作 python 或 tcl expect 中的 pexpect?

标签 lua expect

我有一些 shell 脚本,它们将一些消息打印到标准输出,如果输出与某些正则表达式匹配,我想生成一些其他进程,我可能还想挂起 shell 一段时间,直到其他进程提供一些反馈。我的要求基本上表现得像 shell 中的管道和 tcl expect,或 python 中的 pexpect,我的问题是,lua 是否提供这样的功能?

我考虑过一点 lua 的协程,但它不能在执行 shell 脚本的过程中产生,所以我没有深入研究。

最佳答案

遗憾的是,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通过 posix.pipe()pipe() 提供接口(interface)

但是,请记住,Lua 可能不是最适合这项工作的工具。恕我直言,您最好使用 TCL 或 Python,甚至是 bash 脚本。

关于lua - 什么 lua 功能可以用作 python 或 tcl expect 中的 pexpect?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22092887/

相关文章:

c - Lua C API代码不调用__newindex函数而是调用其他函数

lua - 在嵌套循环中重用相同的未使用变量是否安全?

python - 如何在python中检查ssh是否询问密码?

expect - log_file 命令不在 Expect 脚本中记录命令的输出

linux - bash脚本-使用expect而不使用plot命令来屏幕

shell - 如何一起使用 expect 和 shell 脚本

lua - Lua 中的函数定义

lua - 如何使用 Torch7 进行预测

nginx - 你如何通过 Nginx 上的 LUA 将 POST 和 GET 传递给脚本?

linux + ssh 限制 + ssh 同时从多台机器到一台机器