Aller au contenu

Ligne shebang

Ligne shebang (de sharp, #, et bang, !) : première ligne d'un script, qui commence par #! suivi du chemin d'un interpréteur, par exemple #!/usr/bin/env bash ou #!/bin/sh. Quand on exécute le fichier, le noyau Linux lit ces premiers octets, lance l'interpréteur indiqué et lui passe le chemin du script en argument.

Le noyau impose ses règles : #! doit occuper les deux tout premiers octets du fichier, tout ce qui suit le chemin de l'interpréteur est transmis comme un seul argument (d'où l'échec de #!/usr/bin/env bash -e), et la ligne est limitée en longueur (256 octets depuis Linux 5.1). Sans ligne shebang, l'interpréteur dépend de celui qui lance le fichier ; et bash script ou sh script l'ignorent purement et simplement. #!/usr/bin/env bash cherche Bash dans le PATH, ce qui est portable mais fait confiance au PATH de l'appelant.

Dans les cours

Voir aussi