我正在编写一个Lua 5.3程序,它需要将参数传递给它。我使用arg
表来获取第一个参数:arg[1]
,但根据脚本,第一个参数是nil,即使我已经将参数传递给文件。
这是我写的代码:
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:\Users\WhiteKid\Documents\Scripts>RemoveWhiteSpace.lua " hello world!"
它认为arg [1]在没有的情况下是零值。是否有不同的方法将参数传递给Lua 5.3中的lua脚本?
答案 0 :(得分:2)
由于您直接调用.lua脚本(C:\Users\WhiteKid\Documents\Scripts>RemoveWhiteSpace.lua " hello world!"
),因此您似乎与lua解释器有关联。您需要确保将%1
或%*
传递给您在该关联中调用的解释器。或者,尝试调用Lua解释器并传递脚本名称和参数,它应该按预期工作。
此外,您应该检查是否存在arg[1]
并检查引号是否也存在(因为它们可能在参数到达脚本之前被删除,因此您不应该总是期望它们。)