L'espace est-il autorisé entre #! et / bin / bash à shebang?

48

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 inexact.

Tim
la source
Donc, un espace n'est pas nécessaire ? J'ai toujours vu au moins un ...
Bakuriu
6
@ Bakuriu Où? J'ai presque jamais vu un ...
Jens

Réponses:

48

Oui, c'est autorisé.

L'article de Wikipedia sur le shebang inclut un courriel de 1980 de Dennis Ritchie, lorsqu'il introduisait le support du noyau pour le shebang (dans le cadre d'un paquet plus large appelé directives d'interprétation ) dans la version 8 Unix (souligné par moi):

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 considéré comme le nom d'un interpréteur du fichier exécuté. […]

Pour profiter de cette magnifique opportunité, mettez

#! /bin/sh

dans la marge gauche de la première ligne de vos scripts shell. Les blancs après !sont OK.

Ainsi, les espaces après le shebang existent depuis un certain temps, et 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ète, vous ne pouviez donc pas y avoir une quantité arbitraire de blancs. Cette restriction ne s'applique plus dans les noyaux modernes.

alexwlchan
la source
38

Oui, les blancs sont autorisés après le #!. Il y avait même une idée (erronée) que certains systèmes pourraient en avoir besoin, mais cela a toujours été optionnel.

Pour en savoir plus, essayez ici

Eric Renouf
la source