【问题标题】:Portable shebang line便携式shebang线
【发布时间】:2011-02-20 05:22:09
【问题描述】:
#!/usr/bin/perl

这是我最近写的很多脚本的 shebang 行。

硬编码二进制文件的路径似乎会产生一些问题。例如,如果我的一个用户在 /something_else/bin 上安装了 Perl,那么他们就必须更改所有的 shebang。

我见过一些可以自动替换shebang的工具,但我想知道是否有更简单的工具。

【问题讨论】:

    标签: unix scripting shebang


    【解决方案1】:

    对于 env 不在 /usr/bin/env 中的奇怪嵌入式系统(例如,运行 funplug 等的 NAS 盒),这可能有效。基于ActivePerl / DOS trick

    #!/bin/sh
    exec perl -x -S "$0" "$@"
    #!perl
    print "hello";
    

    【讨论】:

      【解决方案2】:

      env(1)

      #!/usr/bin/env perl
      

      【讨论】:

      • 什么是 /usr/bin/env 在他们系统的其他地方?
      • 那么它很可能会在/usr/bin以及出现。
      • 可以也许只使用 "#!perl" 的 "#!env perl" 并依赖于设置的路径(但我不喜欢它)。
      • @Brenton,抱歉 $PATH 没有被 #! 解析。
      • 啊,是的...知道一定有我从未见过它完成的原因:)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-01
      • 2016-06-20
      • 2011-03-06
      • 2013-11-24
      • 1970-01-01
      相关资源
      最近更新 更多