将变量从 lua 插入 bash 的正确方法是什么?您需要将 2 个变量传递给脚本,代码如下:
location /script {
content_by_lua '
lua_arg1 = ngx.var.arg_arg1
lua_arg2 = ngx.var.arg_arg2
command = "/usr/bin/script.sh "..lua_arg1 ..lua_arg2
local handle = io.popen(command);
local result = handle:read("*a");
handle:close();
ngx.print(result);';
}
这是请求:localhost:1501/script5?arg1=1234&arg2=4321
这是 bash 脚本:
#!/bin/bash
echo argument1 $1
echo argument2 $2
结果如下:
argument1 12344321
argument2
事实证明,变量是“粘在一起的”,如何正确地将它们单独传输到脚本中,以便它像这样:
argument1 1234
argument2 4321
很明显,您需要在参数之间插入一个空格。因为他们在脚本本身中是“盲目的”。