Unix风格的可执行脚本:#! —— Unix 脚本基础
如果将在 Unix,Linux 或类 Unix 系统上使用 Python,还可以将 Python 代码文件转换为可执行程序,就如同使用 shell 语言(如 csh 或 ksh)编写程序一样。这些文件通常被称作可执行脚本。简言之,Unix 风格的可执行脚本只是包含 Python 语句的普通文本文件,但有两个特殊属性:
- 它们的首行特殊。脚本通常以开头为 #! 字符的一行开始(通常叫作 “hash bang” 或者 “shebang”),后面跟着机器上 Python 解释器的路径。
- 它们通常有可执行权限。脚本文件通常被标记为可执行来告诉操作系统它们可以被作为顶层程序运行。在 Unix 系统上,如
chmod + x file.py
通常可以达到此目的。
来看一个类 Unix 系统的例子。再次使用文本编辑器来创建一个名为 brain 的 Python 代码文件:
print('The Bright Side ' + 'of Life...') # + means concatenate for strings
文件顶部的特殊行告诉系统 Python 解释器在哪里。技术上讲,首行是一个 Python 注释。如前面提到的,在 Python 程序中所有注释都开始于一个 # 且扩展到行尾;它们是在代码中为人类读者插入额外信息的地方。但当像本文件中的首行那样的注释出现时,在 Unix 上它是特殊的,因为操作系统 shell 使用它来找到一个解释器,运行文件中其余部分的程序代码。
而且,注意本文件简单地被称作 brain, 没有之前用于模块文件的 .py 后缀。给名字添加 .py 不会有问题(且可以帮助你记住这是一个 Python 程序文件),但因为你没有计划让其他模块导入此文件中的代码,文件的名称是无关紧要的。如果使用 chmod + x brain
shell 命令给了文件可执行权限,可以从操作系统 shell 运行它就好像它是一个二进制程序(对下面例子,要么确保 .
(当前目录)在你系统的 PATH 设置中,或者使用 ./brain
运行):
% brian
The Bright Side of Life...
推荐文章: