Command line 如何从命令行向Lua函数传递参数?

Command line 如何从命令行向Lua函数传递参数?,command-line,lua,command-line-arguments,Command Line,Lua,Command Line Arguments,我有以下test.lua脚本: print("before function") function calc(n) print("in function") print(10*n) end 我试图使用lua test.lua calc 10从命令行执行它,但我得到的唯一输出是: before function 我应该如何获得以下输出: before function in function 100 对于以下代码 m = {} print("before function"

我有以下
test.lua
脚本:

print("before function")
function calc(n)
    print("in function")
    print(10*n)
end
我试图使用
lua test.lua calc 10从命令行执行它,但我得到的唯一输出是:

before function
我应该如何获得以下输出:

before function
in function
100

对于以下代码

m = {}

print("before function")
function m.calc(n)
    print("in function")
    print(10*n)
end

m[arg[1]](arg[2])
命令
lua test.lua calc 10
将输出:

before function
in function
100

请注意,您的函数从未运行过。如果您想让lua处理命令行参数,您的代码需要读取参数并自行解决问题,可能与:@JDong,那里的解决方案似乎只在交互模式下工作。@Eric,我该怎么做?那么这就是您想要的:?为什么要用表
m
使事情复杂化?@lhf,否则它无法工作(假设我在同一个文件中有其他函数)。在这种情况下,您可以使用
\u G[arg[1]](选择(2,unpack(arg))
,而不涉及
m
select
unpack
功能允许您提供任意数量的参数。
\u G[…](选择(2…)
:)test.lua
函数添加(a,b)打印(a+b)结束_G[…](选择(2…)
调用
测试添加10 20