博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
#!/usr/bin/env python与#!/usr/bin/python的区别
阅读量:6787 次
发布时间:2019-06-26

本文共 572 字,大约阅读时间需要 1 分钟。

hot3.png

面试的时候,面试官问我:为什么linux下写python代码的第一行常常是:#!/usr/bin/env python ?

我没有答得上来,回去查了查原来是这样的:

脚本语言的第一行,目的就是指出,你想要你的这个文件中的代码用什么可执行程序去运行它,就这么简单

#!/usr/bin/python是告诉操作系统执行这个脚本的时候,调用/usr/bin下的python解释器;

#!/usr/bin/env python这种用法是为了防止操作系统用户没有将python装在默认的/usr/bin路径里。当系统看到这一行的时候,首先会到env设置里查找python的安装路径,再调用对应路径下的解释器程序完成操作。
#!/usr/bin/python相当于写死了python路径;
#!/usr/bin/env python会去环境设置寻找python目录,推荐这种写法

中,Shebang(也称为Hashbang)是一个由构成的字符序列(#!),其出现在文本文件的第一行的前两个字符。 在文件中存在Shebang的情况下,会分析Shebang后的内容,将这些内容作为解释器指令,并调用该指令,并将载有Shebang的文件路径作为该解释器的参数

转载于:https://my.oschina.net/u/923087/blog/331888

你可能感兴趣的文章
Coursera机器学习编程作业Python实现(Andrew Ng)—— 2.1 Logistic Regression
查看>>
前台动态增加行,并将结果打印到XML文件
查看>>
简单回溯,最少步数
查看>>
LeetCode – Refresh – Palindrome Partitioning II
查看>>
mysql线上数据库单表超过200G的处理
查看>>
生成静态页相关
查看>>
OC中ARC forbids explicit message send of release错误
查看>>
J2SE 学习记录
查看>>
VS静态编译
查看>>
个人作业——Alpha项目测试
查看>>
laravel之laravel-admin安装
查看>>
浅谈C#中的接口和抽象类
查看>>
Jmeter实现webservice的接口测试
查看>>
jmeter用BeanShell调用jar包对HTTP请求中的参数进行MD5加密
查看>>
判断页数及切换
查看>>
GraphQL ---02 GraphQL和C#结合的实战项目
查看>>
Vmware虚拟机三种网络模式详解
查看>>
【已解决】如图,说我磁盘不够,看到var目录下有的个隐藏文件夹占了46G,不知道怎么删除...
查看>>
[LintCode] O(1)检测2的幂次
查看>>
BZOJ3295:[CQOI2011]动态逆序对——题解
查看>>