运行 Lua 脚本直接在 OpenWRT 上(没有先 运行 lua)

Running Lua script on OpenWRT directly (without running lua first)

在 OpenWRT 上,我有一个 Lua 脚本 on_new_device.lua 如果我执行 运行 就没问题 lua on_new_device.lua;但是,我想 运行 只需执行 ./on_new_device.lua.

正在执行./on_new_device.luareturns这个错误...

root@router:~# ./on_new_device.lua
-ash: ./on_new_device.lua: not found

文件有执行权限...

root@router:~# ls -la ./on_new_device.lua
-rwxrwxrwx    1 root     root          1094 Jun 18 11:06 ./on_new_device.lua

文件以 #!/usr/bin/lua...

开头
root@router:~# head -1 ./on_new_device.lua
#!/usr/bin/lua

如何直接执行这个文件?

你能用脚本包装它吗?

将其复制到 test.ash 文件中:

#!/bin/ash

/usr/bin/lua /[path]/on_new_device.lua

然后在test.ash上chmod 755,然后就可以运行:

./test.ash

糟糕,问题是 lua 脚本是在 Windows 机器上创建的,并且有 \r\n 行结尾。使用 \n 行结尾保存文件解决了这个问题。