在Ubuntu上的权限被拒绝。

我有以下 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*

有什么问题?我该如何解决?

点赞
用户869951
用户869951

你正在执行

lua LUA/project.lua

如果 project.lua/home/mohammad/LUA 中,则使用

io.popen("/home/mohammad/LUA", "r")

你正在尝试打开文件夹。但是,在 Lua 参考手册中,popen 文档说

在一个单独的进程中启动程序 prog 并返回一个文件句柄,您可以使用该句柄从该程序中读取数据

文件夹不是一个进程,所以这不起作用。

如果你想使用 io.open,如果文件夹存在,则调用将成功,并且在 Linux 上返回值将是非空的(Linux 和 Windows 之间存在一些差异,详见为什么这个lua脚本不能打开Windows的子目录?)。

2014-02-03 15:21:22