Cette première ligne (#!/ bin / bash ou #!/bin/sh) a un nom. Il est connu sous le nom de « she-bang » (shabang). Cela dérive de la concaténation des jetons sharp(#) et bang(!). Il est également appelé sh-bang, hashbang, poundbang ou hash-pling. En informatique, un she-bang est la séquence de caractères composée du signe numérique des caractères et du point d’exclamation (#!) au début d’un script.
/bin/bash VS/bin/sh
Nous avons souvent vu une variété de she-bang ou d’en-tête de script. Nous nous demandons souvent pourquoi ce script particulier utilise-t-il ce she-bang particulier, pourquoi pas un autre. Sur les systèmes d’exploitation de type Unix, nous avons le choix entre plusieurs shells. Le shell est responsable non seulement des petites invites, mais aussi de l’interprétation des commandes du script. Ainsi, le shell joue un rôle important surtout lorsque nous implémentons des logiques grandes et complexes en utilisant des conditions, des tuyaux, des boucles, etc.
/bin/sh est un exécutable représentant le shell système et généralement implémenté comme un lien symbolique pointant vers l’exécutable pour le shell le shell système. Le shell système est essentiellement le shell par défaut que le script doit utiliser. Au cours des deux dernières années, Debian (et Ubuntu) ont décidé de changer le shell système de bash à dash — un shell similaire mais plus léger et beaucoup plus rapide.
Dash est assez bien compatible avec bash, étant basé sur le même standard POSIX. Cependant, il n’implémente pas les extensions spécifiques à bash. La norme POSIX est une interface de système d’exploitation portable, une tentative de standardisation des systèmes d’exploitation de type UNIX. Même si le shell système d’Ubuntu pointe vers dash, votre shell de connexion en tant qu’utilisateur continue d’être bash en ce moment.
/bin/bash est le shell le plus couramment utilisé comme shell par défaut pour la connexion utilisateur du système linux. Le nom de la coquille est un acronyme pour Bourne-again shell. Bash peut exécuter la grande majorité des scripts et est donc largement utilisé car il a plus de fonctionnalités, est bien développé et une meilleure syntaxe.
QU’EST-CE QUE C’EST? / POURQUOI L’UTILISONS-NOUS?
#!/bin/bash
echo $(date) # Will print the output of date command
touch ~/output.txt
echo "Hey there" > ~/output.txt
Considérons un script très simple comme ci-dessus. Dans tous les cas les plus simples, si nous analysons un script shell, il ne s’agit que d’une liste de commandes stockées dans un fichier. Cela réduit nos efforts pour exécuter la même tâche ou les mêmes commandes encore et encore. Donc, si nous regardons le début du script, la première ligne commence par un hachage (#) et un point d’exclamation (!). Comme vous devez déjà savoir que toute ligne commençant par un hachage (#) est lue comme un commentaire. Ainsi, lorsque nous exécutons le script, la première ligne est lue comme un commentaire et l’interpréteur passe à la deuxième ligne. Mais la première ligne a déjà fait son travail.
Dans les systèmes d’exploitation de type Unix lorsqu’un script commençant par un she-bang (#!) est exécuté en tant que programme, le chargeur de programme analyse le reste de la ligne initiale du script en tant que directive interpréteur. Ainsi, le programme d’interpréteur spécifié est exécuté à la place, en lui passant comme argument le chemin qui a été utilisé initialement à travers le script.
Supposons que tout script commence par la ligne suivante:
#!/bin/sh
ensuite, le chargeur de programme est invité à utiliser le programme /bin /sh au lieu de tout autre, en passant le chemin du script comme premier argument.
En termes simples, la frappe en tête du script indique au système que ce fichier est un ensemble de commandes à transmettre à l’interpréteur de commandes indiqué. Les systèmes d’exploitation de type Unix ont une variété de shells et chacune des lignes d’en-tête de script appelle un interpréteur de commandes différent.
QUELQUES EXEMPLES DE she-bang
#!/bin/sh : Exécute le script en utilisant le shell Bourne ou un shell compatible, avec path/bin/sh
#!/bin/bash : Exécute le script en utilisant le shell Bash.
#!/bin/csh-f : Exécute le script en utilisant un shell C ou un shell compatible.
#!/usr/bin/perl-T : Exécute le script en utilisant perl avec l’option de vérification des défauts
#!/usr/bin/env python :Exécute le script en utilisant python en recherchant automatiquement le chemin d’accès à l’interpréteur python à partir des variables d’environnement
J’espère que vous avez une meilleure idée de ce qu’est she-bang maintenant et à quoi cela sert-il.