#! /usr/bin/env在脚本中的作用
2015-12-29 12:50
399 查看
#!/usr/bin/env
在linux的一些bash的脚本,需在开头一行指定脚本的解释程序,如:
#!/usr/bin/env python
再如:
#!/usr/bin/env perl
#!/usr/bin/env zimbu
#!/usr/bin/env ruby
但有时候也用
#!/usr/bin/python
和
#!/usr/bin/perl
那么 env到底有什么用?何时用这个呢?
脚本用env启动的原因,是因为脚本解释器在linux中可能被安装于不同的目录,env可以在系统的PATH目录中查找。同时,env还规定一些系统环境量。 而如果直接将解释器路径写死在脚本里,可能在某些系统就会存在找不到解释器的兼容性问题。有时候我们执行一些脚本时就碰到这种情况。
这种写法主要是为了让你的程序在不同的系统上都能适用。 不管你的perl是在/usr/bin/perl还是/usr/local/bin/perl,#!/usr/bin/env
perl会自动的在你的用户PATH变量中所定义的目录中寻找perl来执行的。
Probably
the most common use of env is to find the correct interpreter for a script, when the interpreter may be in different directories on different
systems. The following example will find the `perl' interpreter by searching through the directories specified by PATH.
#!/usr/bin/env perl
还可以加上-P参数来指定一些目录去寻找perl这个程序, #!/usr/bin/env
-S -P/usr/local/bin:/usr/bin perl的作用就是在/usr/local/bin和/usr/bin目录下寻找perl。
#!/usr/bin/env
-S -P/usr/local/bin:/usr/bin perl
为了让程序更加的有可扩展性,可以写成
#!/usr/bin/env -S-P/usr/local/bin:/usr/bin:${PATH} perl,那么它除了在这两个目录寻找之外,还会在PATH变量中定义的目录中寻找。
在linux的一些bash的脚本,需在开头一行指定脚本的解释程序,如:
#!/usr/bin/env python
再如:
#!/usr/bin/env perl
#!/usr/bin/env zimbu
#!/usr/bin/env ruby
但有时候也用
#!/usr/bin/python
和
#!/usr/bin/perl
那么 env到底有什么用?何时用这个呢?
脚本用env启动的原因,是因为脚本解释器在linux中可能被安装于不同的目录,env可以在系统的PATH目录中查找。同时,env还规定一些系统环境量。 而如果直接将解释器路径写死在脚本里,可能在某些系统就会存在找不到解释器的兼容性问题。有时候我们执行一些脚本时就碰到这种情况。
这种写法主要是为了让你的程序在不同的系统上都能适用。 不管你的perl是在/usr/bin/perl还是/usr/local/bin/perl,#!/usr/bin/env
perl会自动的在你的用户PATH变量中所定义的目录中寻找perl来执行的。
Probably
the most common use of env is to find the correct interpreter for a script, when the interpreter may be in different directories on different
systems. The following example will find the `perl' interpreter by searching through the directories specified by PATH.
#!/usr/bin/env perl
还可以加上-P参数来指定一些目录去寻找perl这个程序, #!/usr/bin/env
-S -P/usr/local/bin:/usr/bin perl的作用就是在/usr/local/bin和/usr/bin目录下寻找perl。
#!/usr/bin/env
-S -P/usr/local/bin:/usr/bin perl
为了让程序更加的有可扩展性,可以写成
#!/usr/bin/env -S-P/usr/local/bin:/usr/bin:${PATH} perl,那么它除了在这两个目录寻找之外,还会在PATH变量中定义的目录中寻找。
相关文章推荐
- java正则表达式和转义字符
- Java eclipse下 Ant build.xml实例详解 附完整项目源码
- 为项目添加滑动删除效果
- 存储过程相关知识 汇总
- Dagger2的使用
- MyBatis学习总结(10)——批量操作
- MyBatis学习总结(10)——批量操作
- MyBatis学习总结(10)——批量操作
- 如何删除Ambari已有的服务
- 第五章 消息摘要算法--MAC
- 父Shell与子Shell
- 复制:我就差一个程序员了!
- unzip、cp命令参数
- springmvc文件上传(原生)
- ElasticSearch 新建mapping
- eclipse 中运行代码 出现:editor does not contain a main type
- ERP和商业智能
- linux+jenkins+tomcat+git 安装过程的的一些小问题
- Persistent class 练习
- android 适配