Interactive lua: аргументы командной строки
Я хочу сделать
lua prog.lua arg1 arg2
из командной строки
Внутри prog.lua, я хочу сказать, например
print (arg1, arg2, '\n')
У Lua, похоже, нет argv [1] и т.д., и методы, которые я видел для обработки аргументов командной строки, кажутся незрелыми и/или громоздкими. Я что-то упускаю?
Ответы
Ответ 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
>
Дополнительная информация в разделе Lua в автономном режиме Lua (спасибо Miles!).
Ответ 2
В дополнение к таблице arg
...
содержит аргументы (arg [1] и up), используемые для вызова script.
% lua -i -- /dev/null one two three
Lua 5.1.3 Copyright (C) 1994-2008 Lua.org, PUC-Rio
> print(...)
one two three
Ответ 3
Lua хранит аргументы в таблице. Эта таблица является таблицей "arg". Вы можете получить доступ к переданным аргументам внутри, используя arg [1], arg [2],...
arg [0] - это имя программы lua. arg [1] - это первый переданный аргумент, arg [2] - это второй переданный аргумент и т.д....
Ответ 4
Если вы запустите файл .lua в cmd freeswitch
freeswitch> luarun prog.lua arg1
Вы можете использовать prog.lua:
#print(argv[1])
И запустите: $lua prog.lua arg1
(запустите в папке script)
Вы можете использовать prong.lua:
#print(arg[1])