我传递给 lua 脚本的参数为零
Arguments that I pass to a lua script are nil
我正在编写一个 Lua 5.3 程序,它需要将参数传递给它。我使用 arg
table 来获取第一个参数: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] 是 nil 值,但实际上不是。在 Lua 5.3 中是否有不同的方法将参数传递给 lua 脚本?
由于您直接调用 .lua 脚本 (C:\Users\WhiteKid\Documents\Scripts>RemoveWhiteSpace.lua " hello world!"
),您似乎与 lua 解释器有关联。您需要确保将 %1
或 %*
传递给您在该关联中调用的解释器。或者,尝试调用 Lua 解释器并传递脚本名称和参数,它应该会按预期工作。
此外,您应该检查 arg[1]
是否存在并检查引号是否也存在(因为它们可能在参数到达脚本之前被删除,所以您不应该总是期望它们)。
我正在编写一个 Lua 5.3 程序,它需要将参数传递给它。我使用 arg
table 来获取第一个参数: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] 是 nil 值,但实际上不是。在 Lua 5.3 中是否有不同的方法将参数传递给 lua 脚本?
由于您直接调用 .lua 脚本 (C:\Users\WhiteKid\Documents\Scripts>RemoveWhiteSpace.lua " hello world!"
),您似乎与 lua 解释器有关联。您需要确保将 %1
或 %*
传递给您在该关联中调用的解释器。或者,尝试调用 Lua 解释器并传递脚本名称和参数,它应该会按预期工作。
此外,您应该检查 arg[1]
是否存在并检查引号是否也存在(因为它们可能在参数到达脚本之前被删除,所以您不应该总是期望它们)。