为什么当前目录中的 python 脚本在使用 shebang 注释符执行时需要加上 ./ ?

2024-04-26 17:28:48 发布

您现在位置:Python中文网/ 问答频道 /正文

在我当前的目录中有一个可执行文件脚本.py和谢邦#!/usr/bin/env python。要在bash中执行它,我需要键入./script.py。从我读到的关于shebang的内容来看,我希望script.py也能执行脚本,就像python script.py一样,但它没有执行。后面两个选项之间有什么区别?你知道吗


Tags: py目录env脚本bash可执行文件内容键入
1条回答
网友
1楼 · 发布于 2024-04-26 17:28:48

在Un*x-like系统上,出于安全原因,.不在路径中,以避免执行类似ls的命令,该命令可能位于用户目录中(此安全漏洞最好作为根目录进行利用)

对于python脚本来说,这比对于经典命令(如ls)要少一些,但是带有shebang的python脚本是可执行的,因此它们遵守一般的安全规则。你知道吗

当您键入python myscript.py时,您知道脚本在当前目录中,并且python从这里读取脚本,而不管系统路径如何(它被视为数据,而不是可执行文件,真正的可执行文件是python

相关问题 更多 >