最佳答案
这是一个约定,因此 *nix shell 知道要运行哪种解释器。
例如,旧版本的 ATT 默认使用 sh(Bourne shell),而旧版本的 BSD 默认使用 csh(C shell)。
即使在今天(大多数系统运行 bash,“Bourne Again Shell”),脚本也可以是 bash、python、perl、ruby、PHP 等。例如,您可能请参阅 #!/bin/perl
或 #!/bin/perl5
。
PS:
感叹号(!
)被亲切地称为“bang”。 shell 注释符号 (#
) 有时称为 "hash"。
PPS:
请记住 - 在 *nix 下,将后缀与文件类型关联只是一个约定,而不是“规则”。 可执行文件可以是二进制程序,也可以是一百万种脚本类型中的任何一种以及其他东西。因此需要 #!/bin/bash
.
关于linux - 为什么需要将#!/bin/bash 放在脚本文件的开头?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8967902/