Аргументы, которые я передаю скрипту lua, равны нулю
Я пишу программу Lua 5.3, и она требует, чтобы в нее передавались аргументы. Я использую таблицу arg
для получения первого аргумента: arg[1]
, но первый аргумент, согласно сценарию, равен нулю, даже если я передал аргумент в файл.
Вот код, который я написал:
local strin = arg[1]:sub(2,arg[1]:len()-1) -- to remove the quote marks
local i = 0
for W in strin:gmatch(".") do
i = i + 1
if W == " " or W == "t" then strin = strin:sub(i+1) else break end
end
print(strin)
Я передаю аргумент в файл следующим образом:
C:UsersWhiteKidDocumentsScripts>RemoveWhiteSpace.lua " hello world!"
Он думает, что arg[1] является нулевым значением, когда это не так. Есть ли другой способ получения аргументов, передаваемых в скрипт Lua в На Lua 5.3?
1 ответ:
Так как вы называете .Lua script напрямую (
C:\Users\WhiteKid\Documents\Scripts>RemoveWhiteSpace.lua " hello world!"
), похоже, у вас есть связь с интерпретатором lua. Вам нужно убедиться, что вы передаете%1
или%*
интерпретатору, которого вы вызываете в этой ассоциации. Кроме того, попробуйте вызвать интерпретатор Lua и передать имя скрипта и параметры, и он должен работать так, как вы ожидаете.Кроме того, вы должны проверить, присутствует ли
arg[1]
и проверить, есть ли там также кавычки (так как они могут быть удалены до того, как параметры попадут в сценарий, поэтому не стоит всегда их ожидать).