为什么在以不同方式运行脚本时需要权限?

时间:2013-02-01 20:05:13

标签: shell terminal

我在终端中运行时有一个python脚本:

py filename.py

工作正常。但是这种风格:

./filename.py

我收到Permission denied错误。知道为什么吗?提前谢谢。

4 个答案:

答案 0 :(得分:3)

我的猜测是python本身具有-x(可执行)权限,但filename.py不是

答案 1 :(得分:3)

您的文件需要标记为可执行文件。您可以使用ls(1)查看其当前权限,并使用chmod(1)更改其权限:

ls -l filename.py
chmod a+x filename.py

您还需要确保脚本的第一行正确hashbang

#!/usr/bin/py
# the rest of your script...

答案 2 :(得分:2)

执行./filename.py时,它会执行脚本。

当您执行py filename.py时,py程序会在filename.py中读取并运行。

答案 3 :(得分:1)

在posix compiliant系统中有三种类型的权限:读取,写入和执行。您根本没有权限执行该脚本。要添加权限,您必须调用以下内容:

chmod +x filename.py

您必须记住,即使您要添加执行权限(如果您在开头没有./filename.py),#!/usr/bin/py也不会执行您的Python脚本。 Python脚本需要在解释器中执行 - 而不是作为独立的应用程序执行。