18/12/2024

Commandes et Système

Dans un script Linux, qu’est-ce que le shebang ?

I. Présentation

Si vous débutez en scripting sous Linux et que vous lisez vos premiers scripts, surement en Bash, vous avez surement constaté que la première ligne du script commence toujours par "#!" suivi du chemin vers l'interpréteur de script, par exemple Bash.

En fait, la séquence de caractères "#!" est appelée Shebang. Elle sert à indiquer au système quel interpréteur de script il doit utiliser pour exécuter le code contenu dans le fichier. Cette valeur ne correspond pas forcément à Bash, tout dépend du script. Cela est un bon indicateur pour faire fonctionner un script correctement en l'exécutant à l'aide du bon binaire.

II. La syntaxe du shebang

Si l'on devait codifier le Shebang, cela nous donnerai la syntaxe suivante :

#!<chemin-vers-interpreter>

Pour un script Bash, le shebang à inclure sera le chemin vers le binaire bash, à savoir :

#!/bin/bash

Dans le même style, pour exécuter un script en utilisant le binaire de Python, on utilisera :

#!/usr/bin/python

Toujours avec la même logique : sur la première ligne du script. Par contre, si l'on crée un script et que l'on ne précise pas le Shebang dans l'en-tête, le système va l'exécuter avec l'interpréteur par défaut associé au Shell de l'utilisateur qui lance le script.

III. Utiliser la variable d'environnement

Maintenant, nous allons voir un moyen plus simple pour définir le Shebang sans spécifier le chemin complet vers l'interpréteur. Nous allons utiliser la variable d'environnement $PATH pour rechercher le chemin vers le binaire de l'interpréteur spécifié, par exemple :

#!/usr/bin/env bash

S'il y a plusieurs chemins associés, le premier sera utilisé, tout simplement.

IV. Outrepasser le shebang

Si votre script contient un shebang mais que vous souhaitez l'exécuter avec un autre interpréteur que celui spécifié, c'est possible. En fait, il suffit d'exécuter le binaire suivi du nom du script à appeler.

Par exemple :

bash mon-script.sh

La commande ci-dessus va exécuter le script "mon-script.sh" avec l'interpréteur bash même si le shebang spécifie autre chose.

Voilà, vous savez maintenant ce qu'est le shebang ? si vous décidez de créer un premier script pour tester, pensez à ajouter les droits d'exécution sur le fichier pour qu'il puisse être exécuté. Ceci s'effectue de cette façon :

chmod +x mon-script.sh
author avatar
Florian BURNEL Co-founder of IT-Connect
Ingénieur système et réseau, cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail

1 commentaire sur “Dans un script Linux, qu’est-ce que le shebang ?

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.