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

Bash脚本未在.lua上执行,退出状态7(Arg列表太长),bash,shell,lua,Bash,Shell,Lua,正在执行.lua文件,因为我在日志中看到了m.log()中的字符串,但没有执行bash代码。为什么?我遗漏了什么?此外,日志中没有关于os.execute()中的命令的错误 注意:我在命令提示符下直接从os.execute()执行命令,并且IP被添加到路由中,因此我的lua代码中有错误 我将权限从包含.lua和.sh文件的文件夹/文件更改为777,只是为了测试是否存在权限问题,并且没有任何更改,我还尝试更改所有者和用户组 编辑- 下面这一个不起作用,因为它在/root/文件夹中,所以我需要将它移

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

注意:我在命令提示符下直接从
os.execute()
执行命令,并且IP被添加到
路由中,因此我的lua代码中有错误

我将权限从包含
.lua
.sh
文件的文件夹/文件更改为777,只是为了测试是否存在权限问题,并且没有任何更改,我还尝试更改所有者和用户组

编辑- 下面这一个不起作用,因为它在
/root/
文件夹中,所以我需要将它移动到
/var/www/

os.execute ("/path/to/file.sh")
但是bash代码没有被执行,
os.execute
正在返回退出状态7(Arg list太长),我搜索了一下,发现这是因为整个bash代码都在引号内执行:


如何修复它?

您应该检查的结果,因为它将命令的退出状态作为结果之一返回


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

这是退出状态,对吗?那我该怎么处理呢?它没有显示错误。关于
io.open
我试过这个,也试过论坛上找到的其他方法,都不管用。
当在没有命令的情况下调用时,os.execute返回一个布尔值,如果shell可用,则返回该布尔值我检查了它,结果返回true。但是我不知道什么是可用的
shell
应该是什么意思看起来像退出状态,但是我会打印从
os.execute返回的所有值。你在用什么操作系统?假设1792需要除以256,看起来实际返回的错误是7,这是“Arg list太长了”(通过),但这在您的情况下似乎不正确。我也这么做了,但是使用了
.sh
文件的路径,退出代码是32256%256=126,在你的链接上,列表错误范围是1-124,我的操作系统是ubuntu 16。我还测试了这段代码。退出代码似乎是正确的,当我将bash代码直接放入函数
io中时,退出代码是7。open
“如果找到一个命令但不可执行,返回状态是126。”根据Try
/sbin/route
而不是
route
操作系统内执行()
@EgorSkriptunoff不起作用,当前我面临的问题是关于退出状态7(Arg列表太长)Try
os.execute(“/bin/bash/path/to/file.sh”)
问题是因为我需要使用
sudo
执行
.sh
,并且它没有根权限。
os.execute ("/path/to/file.sh")