python

这里简单介绍一下 Shebang(#!) 的用法

基础用法

1. 只在 类 Unix 系统中有效,windows 中可以写,但无效

2. 必须写在文件 开头,第一行的前两个字符

3. shebang 指明了执行这个脚本文件的解释程序,或者说解释器

4. 如果 #! 之后的解释程序是一个可执行文件,那么执行这个脚本时,它就会把文件名及其参数一起作为参数传给那个解释程序去执行

5. #! 之后的解释程序,需要写其绝对路径(如:#!/bin/bash),它是不会自动到 $PATH 中寻找解释器的

异常情况

1. 如果脚本中没有 #! 指定解释器,那么它执行时会默认用当前 shell 去解释这个脚本  (即 $SHELL 环境变量)

2. 如果 #! 指定的解释器没有可执行权限,则会报错 “bad interpreter: Permission denied”

3. 如果 #! 指定的解释器不是一个可执行文件,那么这句将被忽略,执行时会用 shell 解释

4. 如果 #! 指定的解释器不存在,则会报错 “bad interpreter: No such file or directory”

5. 如果你使用”bash test.sh”这样的命令来执行脚本,那么 #! 这一行将会被忽略掉,解释器当然是用命令行中显式指定的 bash

在 python 中有两种写法

#!/usr/bin/python

一般情况下,python 会被安装到 /usr/bin 目录下,此时这么写是可以的;

这种方式相当于写死了 python 解释器的路径;

#!/usr/bin/env python

这种方式是为了防止用户没有把 python 安装到 /usr/bin 目录下,此时他会到 env 设置里查找 python 的安装路径,在调用该路径下的 python 解释器执行脚本;

这种方式会自动寻找 python 解释器,推荐写法

原文地址:https://www.cnblogs.com/yanshw/p/12522034.html