我想在命令行互动LUA:命令行参数
里面prog.lua,我想说做
lua prog.lua arg1 arg2
,例如
print (arg1, arg2, '\n')
的Lua没有按”似乎有argv [1]等,我看到的处理命令行参数的方法似乎不成熟和/或繁琐。我错过了什么吗?
我想在命令行互动LUA:命令行参数
里面prog.lua,我想说做
lua prog.lua arg1 arg2
,例如
print (arg1, arg2, '\n')
的Lua没有按”似乎有argv [1]等,我看到的处理命令行参数的方法似乎不成熟和/或繁琐。我错过了什么吗?
你错过了arg
载体,它具有你arg[1]
,arg[2]
,等需要的元素:(!感谢数)
% lua -i -- /dev/null one two three
Lua 5.1.3 Copyright (C) 1994-2008 Lua.org, PUC-Rio
> print(arg[2])
two
>
你是绝对正确的,我的工作 下落手册中的是我没有找到!? 。我的方式轮得很好ATM干杯 – 2010-05-31 20:34:26
http://www.lua.org/manual/5.1/manual.html#6 – Miles 2010-05-31 20:41:56
谢谢你的答案,我试过'LUA -i - !一二three'上LUA 5.2.4,并得到'无法打开一个:没有这样的文件或directory'这让我觉得需要对'的/ dev/null'(每'[脚本[参数]'手册中,不'[脚本] [。 args]')---我理解正确吗?如果你不反对,我会更新答案解释。非常感谢! – cxw 2017-11-20 14:55:53
除arg
表外,...
还包含用于调用脚本的参数(arg [1]及以上)。
% lua -i -- /dev/null one two three Lua 5.1.3 Copyright (C) 1994-2008 Lua.org, PUC-Rio > print(...) one two three
Lua将参数存储在表中。该表是“arg”表。您可以访问内部使用ARG [1],阿根廷[2],...
ARG [0]是LUA程序的名称传递的参数。 ARG [1]是传递的第一个参数arg [2]是传递的第二个参数等等...
如果您在FreeSWITCH中的CMD运行file.lua
freeswitch> luarun prog.lua arg1
您可以使用PROG .lua:
#print(argv[1])
并运行:$lua prog.lua arg1
(在脚本文件夹中运行) 您可以使用prong.lua:
#print(arg[1])
我很好奇,你见过这样的[简单问题]什么是“不成熟的/笨重的”解决方案(http://www.google.com/search?q=lua+command+line+arguments&btnI=1)。 – Miles 2010-05-31 20:36:10
http://lua-users.org/wiki/CommandLineModule看起来很麻烦,与内置的argc,argv相比; getopt的(在C:/ Program Files文件/ Lua中/ 5.1 /文档/ STDLIB /我的机器上getopt.html)是已TODO写了这一切,并通告的例子是空白。感谢指向arg手册的指针。谷歌并没有为我做它为你做的事,我一直在试图找出答案。这是约(再次)是一个的n00b的事情之一 - 最简单的事情似乎只是没有:-( – 2010-05-31 21:05:33