Подтвердить что ты не робот

Interactive lua: аргументы командной строки

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

 lua prog.lua arg1 arg2

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

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

print (arg1, arg2, '\n')

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

4b9b3361

Ответ 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])