我有以下Lua代码:
local f = io.popen("/home/mohammad/LUA", "r")
if f then
print(f:read("*a"))
else
print("failed to read")
end
当我在Ubuntu中执行它时,我收到一个错误:
mohammad@ubuntu:~$ lua LUA/project.lua
sh: 1: /home/mohammad/LUA: Permission denied
这是文件权限:
-rwxrwxrwx 1 mohammad mohammad 1185 Feb 3 01:56 LUA/project.lua*
有什么问题?我该如何解决?
答案 0 :(得分:3)
你在做什么
lua LUA/project.lua
如果project.lua
位于/home/mohammad/LUA
,则
io.popen("/home/mohammad/LUA", "r")
您正在尝试 popen (管道打开)该文件夹。但是Lua ref manual中的popen文档说
在分离的进程中启动程序prog并返回文件句柄 您可以用来从该程序中读取数据
文件夹不是进程,因此无法使用。
如果您打算使用io.open,如果文件夹存在,则调用将成功,并且Linux上的返回将为非零(Why is this lua script unable to open a Windows subdirectory?中的Linux与Windows之间存在一些差异)。