Lua文本界面库(即使用Lua编写定制的Shell)

特别是,我需要自动化类似于Perl的Term::Shell的重复工作。

如果失败了,是否有任何良好的解析库适用于这样的项目?

我需要在某种更友好于人脑的东西中包装一个OEM提供的工具-虽然可用,但完全是巴洛克式的。

感谢所有回复!

原文链接 https://stackoverflow.com/questions/9326442

点赞
stackoverflow用户312586
stackoverflow用户312586

如果你的 OEM 有一个 C 接口,考虑编写一个二进制模块。这样你就可以使用默认的 Lua 控制台:

$: lua

Lua 5.1.4  Copyright (C) 1994-2008 Lua.org, PUC-Rio
> oem = require 'baroque-oem'
> oem.foo('bar')
2012-02-17 10:28:39
stackoverflow用户1211342
stackoverflow用户1211342

根据你的 Lua 实现,但 os.execute() 函数允许在系统上调用 shell 函数(我不知道是否能在嵌入式设备上运行),但是可以从头开始用 Lua 撰写自定义 shell。

只需使用 io.read() / io.write() 函数获取用户输入,然后可以使用以下函数对用户命令进行解析:

function string.split(self,c)
local l , c , b = {} , c or " " , self
while b:find(c) do
    table.insert(l,b:sub(0,({b:find(c)})[1]-1))
    b = b:sub(({b:find(c)})[1]+(#c))
end
if not(b == "") then table.insert(l,b) end
    return l
end

命令名称由表的第一个令牌给出,所有参数都按顺序列在其后,处理表函数和 unpack() 解析将非常快速。

2012-02-17 20:30:42