php脚本#!/usr/bin/env php写法的好处
脚本语言的第一行,目的就是指出,你想要你的这个文件中的代码用什么可执行程序去运行它。
比如php脚本的第一行可以写成如下几种格式
#!/usr/bin/php
#!/usr/bin/env php
#!/usr/bin/env -S -P/usr/local/bin:/usr/bin php
#!/usr/bin/env -S-P/usr/local/bin:/usr/bin:${PATH} php
#!/usr/bin/env php写法的好处
这种写法主要是为了让你的程序在不同的系统上都能适用。
不管你的php是在/usr/bin/php还是/usr/local/bin/php
#!/usr/bin/env php会自动的在你的用户PATH变量中所定义的目录中寻找php来执行的。
加上-P参数使用来指定一些目录去寻找php这个程序
#!/usr/bin/env -S -P/usr/local/bin:/usr/bin php的作用就是在/usr/local/bin和/usr/bin目录下寻找php。
为了让程序更加的有可扩展性,可以写成如下代码:
#!/usr/bin/env -S-P/usr/local/bin:/usr/bin:${PATH} php
#!/usr/bin/env -S-P/usr/local/bin:/usr/bin:${PATH} perl
(-S-P之间没有空格)
那么它除了在这两个目录寻找之外,还会在PATH变量中定义的目录中寻找。
#!/usr/bin/php写成 #!/usr/bin/env php会好些,当然更好的是#!/usr/bin/env -S-P/usr/local/bin:/usr/bin:${PATH} php
一般使用#!/usr/bin/env php这种写法就能兼容大部分服务器了。
同理,python脚本开头写法:
#!/usr/bin/env python
php脚本#!/usr/bin/env php写法的好处的更多相关文章
- php脚本#!/usr/bin/env php 写法
脚本语言的第一行,目的就是指出,你想要你的这个文件中的代码用什么可执行程序去运行它. 比如php脚本的第一行可以写成如下几种格式 #!/usr/bin/php #!/usr/bin/env php # ...
- #!/usr/bin/env 脚本解释程序的作用
the Zimbu programming language http://www.zimbu.org/getting-started -------------------------------- ...
- #!/usr/bin/env在脚本中的作用
在linux的一些脚本,需在开头一行指定脚本的解释程序,如: #!/usr/bin/env bash #!/usr/bin/bash #!/usr/bin/env python 告诉操作系统执行这个 ...
- 调用python脚本报错/usr/bin/env: python : No such file or directory
一.调用python脚本报错 /usr/bin/env: python: No such file or directory 二.解决方法 原因是在windows上编写的脚本,使用dos2unix对脚 ...
- 人们为什么在Python脚本的第一行上编写#!/ usr / bin / env python shebang?
在我看来,如果没有该行,文件运行相同. #1楼 您可以使用virtualenv尝试此问题 这是test.py #! /usr/bin/env python import sys print(sys.v ...
- Linux下运行bash脚本显示“: /usr/bin/env: "bash\r": 没有那个文件或目录
用 ./ 运行bash脚本文件出现 报错信息 /usr/bin/env: "bash\r": 没有那个文件或目录 错误原因:这主要是因为bash后面多了\r这个字符的原因.在lin ...
- ubuntu 执行Python脚本出现: /usr/bin/env: ‘python\r’: No such file or directory
原因: #!/usr/bin/env python 在ubuntu会变成 #!/usr/bin/env python\r 而\r 会被shell 当成参数 所以出现: /usr/bin/env: ‘ ...
- #!/usr/bin/env python与#!/usr/bin/python的区别
[摘自:http://blog.csdn.net/wh_19910525/article/details/8040494] 一般的python文件的开头都有#!/usr/bin/python.这是什么 ...
- #!/usr/bin/python和#!/usr/bin/env 的区别
#!/usr/bin/python 通常在一个.py文件开头都会有这个语句 它只在Linux系统下生效,意思是当作为可执行文件运行时调用的解释器的位置上面代码的意思是调用/usr/bin/下的Pyth ...
随机推荐
- CentOS里alias命令
alias命令 功能描述:我们在进行系统的管理工作一定会有一些我们经常固定使用,但又很长的命令.那我们可以给这些这一长串的命令起一个别名.之后还需要这一长串命令时就可以直接以别名来替代了.系统中已经有 ...
- Tf中的NCE-loss实现学习【转载】
转自:http://www.jianshu.com/p/fab82fa53e16 1.tf中的nce_loss的API def nce_loss(weights, biases, inputs, la ...
- [LeetCode] 506. Relative Ranks_Easy tag: Sort
Given scores of N athletes, find their relative ranks and the people with the top three highest scor ...
- 高危Windows系统 SMB/RDP远程命令执行漏洞 手工修复办法
1.Windows Update更新补丁方式: 更新方法:点击“开始”->“控制面板”->“Windows Update” ,点击“检查更新”-“安装更新”: 2.检查安装结果: 点击“ ...
- Mac下安装m2crypto 解决找不到openssl头文件的错误
直接复制整段到终端运行 sudo env LDFLAGS="-L$(brew --prefix openssl)/lib" CFLAGS="-I$(brew --pref ...
- System.Data.Entity.Core.EntityException: The underlying provider failed on Open. ---> System.InvalidOperationException: 超时时间已到。超时时间已到,但是尚未从池中获取连接。出现这种情况可能是因为所有池连接均在使用,并且达到了最大池大小。
2017/8/15 20:55:21 [AgentPayQuery_205506102_1BBBB]系统异常:System.Data.Entity.Core.EntityException: The ...
- react native 使用TabNavigator编写APP底部导航
第一步,下载依赖 npm install react-native-tab-navigator --save 第二步,引入 import TabNavigator from 'react-native ...
- 启动软件丢失 MSVCR100.dll 系列,缺少库的问题
做安装包时,Installshield2015工具,里可以添加需要的库. 不然需要自己一个个处理. 参考链接:https://zhidao.baidu.com/question/338311071.h ...
- SpringMVC.入门篇.一.HelloWorld
SpringMVC.入门篇<一>HelloWorld 项目包结构如下: HelloController.java 代码 package com.charles.controller; im ...
- 关于CTeX的几个大坑
https://blog.csdn.net/zjutczj/article/details/53463478 最近一直忙着写小论文,毕业设计中期答辩,没有更新博客,忙过这一阵我会把这段时间学习机器学习 ...