.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代码有问题.
我将权限从文件夹/文件中更改为777,该文件夹/文件只用于测试.lua和.sh文件是否是permision问题,没有什么改变,我还试图更改所有者和用户组。
编辑- - --这个波纹管不能工作,因为它在/root/文件夹上,所以我需要把它移到/var/www/。
os.execute ("/path/to/file.sh")但是bash代码没有被执行,os.execute返回退出状态7 (Arg列表太长),我搜索了它,我意识到这是因为整个bash代码在引号内执行:为什么我在传递引用的参数时得到"/bin/sh:参数列表太长“?
我怎么才能修好它?
发布于 2019-05-07 15:32:31
您应该检查os.execute的结果,因为它将命令的退出状态作为结果之一返回。
您还可以使用io.popen运行脚本并检查生成的输出。
https://stackoverflow.com/questions/56025771
复制相似问题