为什么运行可执行脚本需要./filename?

为什么运行可执行脚本需要./filename?

在我的主目录中创建 Python 脚本文件 test.py 并运行chmod +x test.py使其可执行,并将其#!usr/bin/env作为文件头放置后,我希望能够在bashOS X 上运行该脚本,使用:

$ test.py

bash返回:

-bash: test.py: command not found

以下命令有效:

$ ./test.py

为什么这个可执行脚本需要当前工作目录中的相对路径?

答案1

当您向 shell 发出运行命令时,它会在执行路径 ($PATH) 中搜索程序。在命令前面加上路径(例如 ./)可防止 shell 搜索并指示 shell 使用显式指定的特定程序。

如果程序驻留在不在搜索路径中的目录中,那么您必须显式指示该程序的路径。

相关内容