#/bin/python是运行什么命令的?

#/bin/python是运行什么命令的?求大牛详解。。。初学python,练习的时候遇到这个,被鄙视,呜呜~~~~~~~~~~~~~~恨没姿势,求涨~~回复内容:
首先,楼主,你打漏了一个字符,正确的是#!/bin/python要了解这行是干啥用的,得先了解一个“魔数(magic number)”的概念。每一种文件,在文件开头,都有一个标识文件类型的字节序列,标识这个文件是什么类型的。这个字节序列叫““魔数”。像unix下的脚本,这个魔数就是”#!”。这个魔数的英文名叫“shebang”。操作系统的文件解释器在加载文件时,先要判断文件是什么类型的,然后再加载特定的文件解释器,来解读这个文件。操作系统的文件解释器判断的依据,就是看这个魔数。所以,当看到”#!”时,操作系统的文件解释器知道这是一个“脚本”。那具体用哪一种脚本解释器呢?它继续读。结果发现/bin/python。也就是要用/bin/python 这个路径下的一个叫“python”的解释器来解释这个文件。于是操作系统的文件解释器就加载了这个python解释器。 然后操作系统的文件解释器任务就完成了。当python解释器被加载运行后,它自己来解释这个文件。这时,它看到第一行: #!/bin/python它认得一开头的#是标记注释行开始的记号,所以它认为这是一行注释,就直接跳过。然后开始执行后续的真正的python指令。综上,这一行,被两个层次的解释器以不同的形式解释。
这就是一行注释!在#后面加上!才是解释器定义。
这是你在linux/unix系统下运行一个脚本的时候,告诉系统用什么解释器来运行脚本用的
比如你执行一个脚本

$ ./script

#!/bin/python 不是命令,是定义python解释器位置的。就是告诉系统在什么地方可以找到用于这个脚本的python解释器。比如,#!/bin/python3 是定义python3位置的。我一般这么写,#!/use/bin/env python 这样可以让系统协助寻找python解释器,可以在多个系统里面通用。
你用的什么教材?换一本吧,没解释这句的书就不用看了
提醒 unix系统 用 /bin/python 来解释执行这个脚本

head -1 abc.sh
#! /bin/bash

Posted in 未分类

发表评论