lua运行带有参数的shell命令无效

2024-10-06 14:02:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试图从lua脚本执行一个命令。该命令只需运行一个名为“sha_compare.py”的python脚本,该脚本接收3个参数,其中两个是来自lua脚本的变量-dady_data和sha:

local method = ngx.var.request_method
local headers = ngx.req.get_headers()

if method == "POST" then
   ngx.req.read_body()
   local body_data = ngx.req.get_body_data()
   local sha = headers['X-Hub-Signature-256']
   ngx.print(os.execute("python3 sha_compare.py"..sha..body_data))
else

由于我调用参数的方式,脚本失败。如果我从cmd运行它,实际的命令应该是这样的:

python3 python3 sha_compare.py sha256=ffs8df aaaaa

请告诉我应该如何更改代码以正确调用带有3个变量的python脚本

如果不可能或难以实现,请告诉我如何调用将接收这3个参数的.sh脚本


Tags: py命令脚本data参数localbodyreq
1条回答
网友
1楼 · 发布于 2024-10-06 14:02:02

您没有在参数之间提供空格:您正在尝试执行

python3 sha_compare.pysha256=ffs8dfaaaaa

这样做:

os.execute("python3 sha_compare.py "..sha.." "..body_data)

将命令构建为一个表通常更容易,而concat命令可以执行:

local cmd = { 'python3', 'sha_compare.py', sha, body_data }
os.execute(table.concat(cmd, " "))

相关问题 更多 >