bash - Bash 脚本未在 .lua 上执行,退出状态 7(参数列表太长)
问题描述
该.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
我将权限从具有and文件的文件夹/文件更改为 777,.sh
只是为了测试它是否是权限问题,没有任何改变,我还尝试更改所有者和用户组。
编辑 -
这个波纹管不起作用,因为它在/root/
文件夹上,所以我需要把它移到/var/www/
.
os.execute ("/path/to/file.sh")
但是 bash 代码没有被执行,os.execute
正在返回退出状态 7(Arg 列表太长),我搜索了一下,我意识到这是因为整个 bash 代码正在引号内执行:为什么我得到“/ bin /sh:参数列表太长”传递引用的参数时?
我该如何解决?
解决方案
您应该检查os.execute的结果,因为它会将命令的退出状态作为结果之一返回。
您还可以使用io.popen运行脚本并检查生成的输出。
推荐阅读
- python - Python 3.9 Pygame 混频器频率更改不起作用
- python - 在 Pandas 数据框中为其查找特定的字符串和值
- python - 如果 python 烧瓶应用程序在 apache2 mod_wsgi 下运行,则无法写入日志文件
- reactjs - 如何管理托管在 Firebase 上的 React 应用程序的缓存行为
- html - 如何在 CSS 中输入具有多个类的类
- python - Apache2 和 Flask 问题
- c++ - 矢量到角度转换函数有时返回弧度,有时返回度数
- c# - 如何使用实体框架在 ASP.NET MVC 中创建下拉列表?我在视图中创建了一个下拉列表并在控制器中创建了一个列表绑定
- java - 我想在arraylist javaspring中显示值arraylist,如何解决?
- android - Caffe2 找不到 CUDA 库