Shell 使用shebang生产线的实际价值是什么?

Shell 使用shebang生产线的实际价值是什么?,shell,unix,shebang,Shell,Unix,Shebang,当我使用saysource或ruby调用脚本时,我没有注意到任何差异。我猜shebang行的好处在于,如果您将脚本作为可执行文件运行,环境知道要调用什么程序。不确定情况是否如此;但是我只是验证。源代码命令忽略shebang行。当shell以正常方式调用脚本时(不使用或源代码),shell使用shebang行为脚本派生正确的解释器。shebang行可以包含: 可以解释脚本的任何可执行文件的直接路径,以及解释程序的参数(#!/usr/local/bin/perl-w) /可以找到路径的usr/bi

当我使用say
source
ruby
调用脚本时,我没有注意到任何差异。我猜shebang行的好处在于,如果您将脚本作为可执行文件运行,环境知道要调用什么程序。不确定情况是否如此;但是我只是验证。

源代码命令忽略shebang行。当shell以正常方式调用脚本时(不使用
源代码
),shell使用shebang行为脚本派生正确的解释器。shebang行可以包含:

  • 可以解释脚本的任何可执行文件的直接路径,以及解释程序的参数(
    #!/usr/local/bin/perl-w
  • /可以找到路径的usr/bin/env(
    #!/usr/bin/env bash
    )。这样做的好处是,它可以防止硬编码路径,并让shell拾取特定于环境的路径。在这种情况下,无法向解释器发送参数

另见:


您的假设是正确的。A
#
允许您使用几乎任何任意工具来执行程序。