这是一个约定,因此* 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
。