为什么我们需要在使用shebang时使文件可执行?

时间:2015-06-02 05:52:55

标签: shell unix scripting

我是一名unix新手,正在探索shebang line的功能。

例如,假设我有一个程序program.py来执行。

执行的一种方法是直接调用解释器命令:

python program.py

如果使用shebang系列,我将包括:

#!/usr/bin/env python 

在文件的开头告诉系统使用什么解释器。

那么为什么我们在这种情况下需要通过调用:

使文件'可执行'
chmod +x program.py

然后致电:

./program.py

执行它,

而不是直接调用:

program.py

执行它?

1 个答案:

答案 0 :(得分:2)

你问了两个不相关的问题。

我们让它可执行,以便操作系统读取shebang行。

我们在它前面添加“./”,以便shell可以找到它并告诉操作系统执行它,因为该脚本不太可能位于$PATH中列出的目录中。