Windows 上的 git bash 脚本中是否需要 shebang

Was*_*sif 4 windows linux bash git-bash

Shebang 是 bash 脚本的第一行,告诉 bash 脚本的执行位置。在Windows git bash脚本中,有必要吗?如果没有,为什么?

Spi*_*iff 7

Shebangs在任何平台上都不应该是真正必要的。如果 shell 脚本缺少 shebang,则该脚本将由调用来解释它的任何 shell 二进制文件来解释。这通常是与调用脚本的 shell 相同的 shell 二进制文件。如果 shell 开始执行脚本并发现 shebang 指向不同的 shell 二进制文件,它将调用其他 shell 二进制文件来执行该脚本。

因此,shebang 只是覆盖,以防有人从错误的 shell 调用脚本。就像如果你编写一个脚本bash,但你担心tcsh用户会调用它,并且你知道tcsh它将无法处理bash你在脚本中使用的 -isms,你bash在顶部放置一个 shebang 来告诉tcshzsh任何其他他们应该将其交给的 shell bash

  • `shebang` 指定使用哪个解释器来解析和执行文本文件中的其余行。有效的“shebangs”不仅是 shell,还包括任何解释器,例如“awk”、“perl”或“python”。 (2认同)