[英]Parse Arguments to Lua File
我有File:data.lua
#! /usr/bin/env lua
local a = {
b = {
c = {
version = "z.y"
},
d = {
version = "z.w"
},
getcversion = function ( self )
print( self.c.version )
end
}
}
现在我需要'getcversion()'函数..
a.b:getcversion()
问题是,我需要从外面调用它:
data.lua "a.b:getcversion()"
我尝试了一切,但我无法解决这个问题。
有没有人知道我怎么称呼'getcversion()'?
在此先感谢,此致
您需要在脚本中添加以下内容:
load(arg[1], "<string>", "t", {a = a})()
load
将加载传递的参数( arg[1]
)的内容,并返回将在特定环境中执行该代码的函数(作为{a = a}
表提供),因为您需要传递局部变量的值你的代码(Lua 5.2+)。
请记住,这将允许调用者将任意Lua代码传递给您的脚本,这可能是一个安全问题。
错误处理留给读者练习。
将return a
到data.lua的末尾,将其转换为模块,然后:
$ lua -e 'a = require("data"); print(a.b:getcversion())'
z.y
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.