文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>#!/usr/bin/env bash释疑

#!/usr/bin/env bash释疑

时间:2008-04-06  来源:剑心通明

我有点孤陋寡闻了,今天才知道还有这么个写法,man+google了一下,明白是怎么回事了,试着解释如下:
     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' inter-
     preter by searching through the directories specified by PATH.

           #!/usr/bin/env perl

     One limitation of that example is that it assumes the user's value for
     PATH is set to a value which will find the interpreter you want to exe-
     cute.  The -P option can be used to make sure a specific list of directo-
     ries is used in the search for utility.  Note that the -S option is also
     required for this example to work correctly.

           #!/usr/bin/env -S -P/usr/local/bin:/usr/bin perl

     The above finds `perl' only if it is in /usr/local/bin or /usr/bin.  That
     could be combined with the present value of PATH, to provide more flexi-
     bility.  Note that spaces are not required between the -S and -P options:

           #!/usr/bin/env -S-P/usr/local/bin:/usr/bin:${PATH} perl

这种写法主要是为了让你的程序在不同的系统上都能适用。
不管你的perl是在/usr/bin/perl还是/usr/local/bin/perl,#!/usr/bin/env perl会自动的在你的用户PATH变量中所定义的目录中寻找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:${PATH} perl,那么它除了在这两个目录寻找之外,还会在PATH变量中定义的目录中寻找。

同样的php也适用, #!/usr/bin/php写成 #!/usr/bin/env php会好些,当然更好的是#!/usr/bin/env -S-P/usr/local/bin:/usr/bin:${PATH} php
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载