为什么有人会在 shell 脚本中使用两个 shebang?
Why would someone use two shebangs in a shell script?
我继承了一个中等规模的脚本集合,其中一些以两个 shebang 开头,如下所示:
#!/bin/sh
#!/bin/bash
[do stuff]
使用这个结构是否有正当理由?
根据我的经验,任何 Unix 只会将第一行视为 shebang,第二行将是脚本的第一行,sh
解释器会将其视为注释而忽略。我应该认为这是程序员的错误吗?如果我简单地删除第二个 shebang,兼容性或便携性有什么不同吗?
你是对的:有两条 shebang 行是没有用的。只会使用第一个。
可能是之前的一些自动化重构的错误。只需查看您的修订控制系统——我绝对确定无论是谁做的,都会留下清晰详细的评论来解释他们的理由。
我继承了一个中等规模的脚本集合,其中一些以两个 shebang 开头,如下所示:
#!/bin/sh
#!/bin/bash
[do stuff]
使用这个结构是否有正当理由?
根据我的经验,任何 Unix 只会将第一行视为 shebang,第二行将是脚本的第一行,sh
解释器会将其视为注释而忽略。我应该认为这是程序员的错误吗?如果我简单地删除第二个 shebang,兼容性或便携性有什么不同吗?
你是对的:有两条 shebang 行是没有用的。只会使用第一个。
可能是之前的一些自动化重构的错误。只需查看您的修订控制系统——我绝对确定无论是谁做的,都会留下清晰详细的评论来解释他们的理由。