Bash Autres shebangs


Exemple

Il existe deux types de programmes connus du noyau. Un programme binaire est identifié par son en-tête ELF ( E xtenable L oadable F ormat), qui est généralement produit par un compilateur. Le second est des scripts de toutes sortes.

Si un fichier commence à la toute première ligne avec la séquence #! alors la chaîne suivante doit être un chemin d'accès d'un interprète. Si le noyau lit cette ligne, il appelle l'interpréteur nommé par ce chemin et donne tous les mots suivants dans cette ligne comme arguments à l'interpréteur. S'il n'y a pas de fichier nommé "quelque chose" ou "faux":

#!/bin/bash something wrong
echo "This line never gets printed"

bash essaie d'exécuter son argument "quelque chose de mal" qui n'existe pas. Le nom du fichier de script est également ajouté. Pour voir cela clairement utiliser un écho shebang:

#"/bin/echo something wrong 
# and now call this script named "thisscript" like so:
# thisscript one two
# the output will be:
something wrong ./thisscript one two

Certains programmes comme awk utilisent cette technique pour exécuter des scripts plus longs résidant dans un fichier disque.