当我使用source
或ruby
来调用脚本时,我没有发现任何差异。我猜测shebang系列的好处是,如果您将脚本作为可执行文件运行,环境将知道要调用的程序。不确定是否是这种情况;但我只是在验证。
答案 0 :(得分:1)
source
命令忽略了shebang行。当shell以正常方式调用脚本时(不使用.
或source
),shell使用shebang行为脚本分叉正确的解释器。 shebang系列可以包含:
#!/usr/local/bin/perl -w
)#!/usr/bin/env bash
)。这样做的好处是它可以防止硬编码路径并让shell获取特定于环境的路径。在这种情况下,无法向解释器发送参数另见: