编写一个没有shebang行的Bash脚本

时间:2012-03-30 14:35:35

标签: bash

我在CentOS下写了一个bash脚本,执行得很好。在另一台电脑上,这是错误的。我刚开始忘记了shebang,但为什么我的电脑好呢? 我认为这是一个非常初学的问题,但我试了一下。感谢。

更新: 出现了另一个问题。使用 ./ filename.sh sh filename.sh 执行有什么区别?

2 个答案:

答案 0 :(得分:4)

在脚本开头没有shebang会在调用脚本时在当前运行的任何shell中执行它。如果您确定该脚本将从bash启动,而不是从任何其他shell(ksh,csh等)启动,则不需要shebang,因为将启动相同的解释器。

答案 1 :(得分:4)

如果您的脚本execve失败,将会使用/bin/sh。在一个系统/bin/sh上可能是POSIX sh,在另一个系统上它可能是bash的别名;您的脚本可能依赖于bash功能。