Bash脚本未在.lua上执行,退出状态为7(Arg列表过长)

时间:2019-05-07 15:17:57

标签: bash shell lua

正在执行.lua文件,因为我在日志中看到了m.log()中的字符串,但是未执行bash代码。为什么?我有什么想念的吗?此外,os.execute()中有关命令的日志中也没有错误。

#!/usr/bin/lua

function main()
m.log(1,"Starting script execution \n")
os.execute ("route add xx.xxx.xxx.xxx reject")
## i also tried os.execute ("/path/to/file.sh") and giving permision to execute with chmod +x filename.sh
m.log(1,"Script execution finished\n")
end

注意:我直接在命令提示符中从os.execute()执行了命令,并且IP已添加到route,所以我的lua代码有问题...

我将具有.lua.sh文件的文件夹/文件的权限更改为777,只是为了测试这是否是渗透性问题,并且没有任何变化,我还尝试更改所有者和用户组。

编辑- 此波纹管无法工作,因为它位于/root/文件夹中,因此我需要将其移至/var/www/

os.execute ("/path/to/file.sh")

但是bash代码没有执行,os.execute返回退出状态7(Arg列表太长),我对其进行了搜索,我意识到这是因为整个bash代码都在引号内执行:Why do I get "/bin/sh: Argument list too long" when passing quoted arguments?

我该如何解决?

1 个答案:

答案 0 :(得分:1)

您应检查os.execute的结果,因为它返回命令的退出状态作为结果之一。

您还可以使用io.popen运行脚本并检查生成的输出。