Dans un shebang, un espace ou plus est-il autorisé entre #!
et l'interprète ?
Par exemple, #! /bin/bash
. Cela semble fonctionner, mais certains ont dit que c'était incorrect.
Réponse acceptée :
Oui, c'est autorisé.
L'article de Wikipedia sur le shebang comprend un e-mail de 1980 de Dennis Ritchie, lorsqu'il introduisait la prise en charge du noyau pour le shebang (dans le cadre d'un package plus large appelé directives d'interprétation ) dans la version 8 d'Unix (c'est moi qui souligne) :
Le système a été modifié de sorte que si un fichier en cours d'exécution
commence par les caractères magiques#!
, le reste de la ligne est compris
comme le nom d'un interpréteur pour le fichier exécuté. […]Pour profiter de cette merveilleuse opportunité,
mettez#! /bin/sh
à la marge gauche de la première ligne de vos scripts shell. Vides après
!
sont OK.
Ainsi, les espaces après le shebang existent depuis un certain temps, et en effet, l'exemple de Dennis Ritchie les utilise.
Notez que les premières versions d'Unix avaient une limite de 16 caractères dans cette ligne d'interpréteur, vous ne pouviez donc pas y avoir une quantité arbitraire d'espaces blancs. Cette restriction ne s'applique plus dans les noyaux modernes.