为什么有人会在shell脚本中使用两个shebang?

时间:2017-08-31 14:12:58

标签: bash shell posix shebang

我继承了一个中等大小的脚本集合,其中一些脚本以两个shebang开头,如下所示:

#!/bin/sh
#!/bin/bash
[do stuff]

使用此构造是否有正当理由?

根据我的经验,任何Unix都只会将第一行视为shebang,第二行将是脚本的第一行,sh解释器将忽略它作为注释。我应该假设这是程序员的错误吗?如果我只是删除第二个shebang,那么兼容性或可移植性是否有任何区别?

1 个答案:

答案 0 :(得分:2)

你是对的:拥有两条绳子是没有用的。只会使用第一个。

在以前的一些自动重构中,也许这是一个错误。只需查看您的修订控制系统 - 我绝对肯定无论是谁做了这个都留下了一个清晰而详细的评论来解释他们的理由。