À retenir
- Le shebang doit impérativement être placé sur la toute première ligne du fichier.
- Il commence toujours par les deux caractères
#!. - Il évite à l'utilisateur de devoir taper le nom du langage de programmation avant le nom du script pour le lancer.
Le shebang est une ligne spéciale située au tout début d'un fichier de script commençant par les caractères #!. Elle indique au système d'exploitation quel logiciel (l'interpréteur) doit être utilisé pour lire et exécuter le code contenu dans le fichier. C'est un peu comme l'étiquette sur une boîte de jeu qui préciserait sur quelle console elle doit être insérée.
Étymologie
Contraction des termes anglais « sharp » (pour le caractère dièse #) et « bang » (nom familier du point d'exclamation ! en informatique). Ce mécanisme est né dans l'univers Unix pour automatiser le lancement de programmes écrits dans divers langages sans intervention manuelle.
Exemples d'usage
#!/bin/bashpour un script écrit en langage Shell.#!/usr/bin/env python3pour un programme écrit en Python.#!/usr/bin/nodepour exécuter du code JavaScript côté serveur avec Node.js.
Cas d'usage
On l'utilise principalement sur les systèmes de type Unix (Linux, macOS, BSD) lors de la création d'outils en ligne de commande, de scripts de maintenance serveur ou d'automatisations. Il permet de transformer un simple fichier texte en un programme autonome que l'on peut lancer par son nom.
Bonnes pratiques
Il est recommandé d'utiliser la forme #!/usr/bin/env nom_du_programme plutôt qu'un chemin fixe. Cela permet au système de localiser automatiquement le programme voulu, même s'il n'est pas installé au même endroit sur tous les ordinateurs.
Synonymes
Conseil
Si vous développez des scripts destinés à être partagés, utilisez toujours un shebang. Cela garantit que votre code sera interprété par la bonne version du langage chez vos collègues ou utilisateurs, sans qu'ils aient besoin de deviner comment le lancer.
Questions fréquentes
Pourquoi mon script ne se lance pas malgré le shebang ?
Assurez-vous que le fichier a les droits d'exécution (commande chmod +x) et que les fins de lignes sont au format Unix (LF) et non Windows (CRLF).
Peut-on mettre un shebang sous Windows ?
Le système Windows ne l'utilise pas nativement, mais des outils comme le 'Python Launcher' ou l'environnement WSL le reconnaissent pour assurer la compatibilité des scripts.