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

我有一些 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/

相关文章:

qt - 如何动态创建Q_Properties

math - 最大化受二次约束的线性目标

arrays - 简单数组追加操作的时间复杂度

Django 1.6 - 如何将显示的文本缩短到模板中?

Django - 如何设置表单字段占位符的样式?

ruby-on-rails - 在 rails 开发环境 smtp cpanel 上发送电子邮件 r

command-line - 无法在 cygwin 上运行 isql

database-design - Toad ERD 到 Visio ER 图的转换

jdbc - 在 Netty 消息处理中使用 JDBC 事务

asp.net-mvc - MVC 层和 DAL 和数据层