GNU/Linux >> Tutoriels Linux >  >> Linux

Bash Shebang

Si vous apprenez les scripts Bash en lisant le code d'autres personnes, vous avez peut-être remarqué que la première ligne des scripts commence par #! caractères et le chemin vers l'interpréteur Bash.

Cette suite de caractères (#! ) s'appelle shebang et est utilisé pour indiquer au système d'exploitation quel interpréteur utiliser pour analyser le reste du fichier.

Directive de l'interprète Shebang #

La directive de l'interpréteur Shebang prend la forme suivante :

#!interpreter [arguments]
  • La directive doit être la première ligne du script.
  • La directive doit commencer par shebang #!
  • L'espace blanc après les caractères shebang est facultatif.
  • Interpreter est le chemin complet vers un fichier binaire (ex :/bin/sh , /bin/bash ).
  • Les arguments de l'interpréteur sont facultatifs.

Exemples :

  • #!/bin/bash - Utilise bash pour analyser le fichier.
  • #!/usr/bin/env perl - Utilise le env commande pour trouver le chemin vers le perl exécutable.
  • #!/usr/bin/python Exécute le fichier en utilisant le python binaire.

Utilisation de Shebang dans les scripts Bash #

Si un shebang n'est pas spécifié et que l'utilisateur exécutant le script Bash utilise un autre Shell, le script sera analysé par l'interpréteur par défaut utilisé par ce Shell. Par exemple, l'interpréteur par défaut pour bash est bash et pour zsh est sh . Pour vous assurer que votre script sera toujours interprété avec Bash, vous devrez spécifier le chemin de l'exécutable à l'aide de shebang.

Il existe deux façons d'utiliser la directive Shebang et de définir l'interpréteur.

  1. En utilisant le chemin absolu vers le binaire bash :

    #!/bin/bash
  2. Utilisation de env utilitaire :

    #!/usr/bin/env bash

L'avantage d'utiliser la deuxième approche est qu'elle recherchera le bash exécutable dans le $PATH de l'utilisateur variable environnementale. S'il existe plusieurs chemins vers bash , le premier sera utilisé par le script.

Lorsque vous utilisez la première option pour ajouter une option à la fourniture du shell Bash, passez-la à l'interpréteur. Par exemple, pour exécuter le script en mode débogage, vous utiliserez #!/bin/bash -x .Si vous utilisez le env méthode alors vous devez utiliser set pour déclarer l'option. Pour activer le mode débogage, vous ajouteriez set -x après la ligne shebang.

Exemple de script #

Créons un script simple en utilisant shebang qui affichera "Hello, World". Ouvrez votre éditeur de texte et collez la ligne suivante :

nano hello_world
hello_world
#!/bin/bash

echo "Hello, World"

Pour pouvoir exécuter le script sans spécifier l'interpréteur depuis la ligne de commande, vous devez rendre le fichier exécutable :

chmod +x hello_world

Maintenant, si vous pouvez exécuter le script en tapant ./ suivi du nom du script :

./hello_world
Hello, World

Remplacer le Shebang #

Si, pour une raison quelconque, vous souhaitez remplacer l'interpréteur défini dans la ligne Shebang, vous devez exécuter le script en spécifiant explicitement le shell souhaité.

Par exemple pour exécuter un script qui a #!/bin/sh spécifié dans la ligne Shebang en utilisant le bash shell vous taperiez :

bash hello_world

Veuillez noter que ce n'est pas une bonne idée de remplacer l'interpréteur de shell car cela peut entraîner un comportement inattendu du script.

Conclusion #

Vous devriez maintenant avoir une bonne compréhension de ce qu'est Shebang et comment l'utiliser dans vos scripts Bash.

Si vous avez des questions ou des commentaires, n'hésitez pas à laisser un commentaire.


Linux
  1. Arguments multiples dans Shebang?

  2. L'espace est-il autorisé entre # ! Et /bin/bash à Shebang ?

  3. Trier en bash

  4. commande d'exportation bash

  5. Limite de ligne Shebang dans le noyau bash et linux

Bash jusqu'à la boucle

Déclaration de cas bash

Instruction Bash if..else

Tableaux bash

Commande Bash printf

Tableau associatif dans Bash