在OpenWRT上,我有一个Lua脚本on_new_device.lua
,如果执行lua on_new_device.lua
,该脚本可以正常运行;但是,我只想通过执行./on_new_device.lua
来运行它。
执行./on_new_device.lua
会返回此错误...
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
如何直接执行此文件?
答案 0 :(得分:4)
您可以将其包装在脚本中吗?
将其复制到test.ash文件中:
#!/bin/ash
/usr/bin/lua /[path]/on_new_device.lua
然后在test.ash上使用chmod 755,然后可以运行:
./test.ash
答案 1 :(得分:0)
Bah,问题在于lua脚本是在Windows计算机上创建的,并且具有\ r \ n行尾。保存带有\ n行尾的文件可以解决此问题。