интерактивный lua: аргументы командной строки - PullRequest
30 голосов
/ 01 июня 2010

Я хочу сделать

 lua prog.lua arg1 arg2

из командной строки

Внутри prog.lua, я хочу сказать, например

print (arg1, arg2, '\n')

У Lua, похоже, нет argv [1] и т. Д., И методы, которые я видел для работы с аргументами командной строки, кажутся незрелыми и / или громоздкими. Я что-то пропустил?

Ответы [ 4 ]

45 голосов
/ 01 июня 2010

Вам не хватает вектора 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
> 

Больше информации в разделе руководства Lua об автономном Lua (спасибо, Майлз!).

25 голосов
/ 03 июня 2010

В дополнение к таблице 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
5 голосов
/ 24 января 2012

Lua хранит аргументы в таблице. Эта таблица является таблицей "arg". Вы можете получить доступ к переданным аргументам внутри, используя arg [1], arg [2], ...

arg [0] - это имя программы lua. arg [1] - первый переданный аргумент, arg [2] - второй переданный аргумент и т. д. *

2 голосов
/ 20 февраля 2014

Если вы запустите file.lua в cmd freeswitch

freeswitch> luarun prog.lua arg1

Вы можете использовать prog.lua:

#print(argv[1])

И запустить: $lua prog.lua arg1 (запустить в папке скриптов) Вы можете использовать prong.lua:

#print(arg[1])
...