Android

Bash shebang

Shell Scripting - Introduction & Shebang

Shell Scripting - Introduction & Shebang

Table des matières:

Anonim

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

Directive sur les interprètes de shebang

La directive d'interprétation Shebang prend la forme suivante:

#!interpreter

  • 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. L'interpréteur est le chemin complet vers un fichier binaire (ex: /bin/sh , /bin/bash ). Les arguments d'interprète sont facultatifs.

Exemples:

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

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 exécutable à l'aide de shebang.

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

  1. Utilisation du chemin absolu vers le binaire bash:

    #!/bin/bash

    Utilisation de l'utilitaire env :

    #!/usr/bin/env bash

L'avantage de l'utilisation de la deuxième approche est qu'elle recherchera l'exécutable bash dans la variable d'environnement $PATH l'utilisateur. S'il y a plus d'un chemin à bash , le premier sera utilisé par le script.

Lorsque vous utilisez la première option pour ajouter une option à l'approvisionnement 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 la méthode env , vous devez utiliser set pour déclarer l'option. Pour activer le mode de débogage, vous devez ajouter set -x après la ligne shebang.

Exemple de script

Créons un script simple à l'aide de shebang qui imprimera «Bonjour tout le monde». Ouvrez votre éditeur de texte et collez la ligne suivante:

nano hello_world Bonjour le monde

#!/bin/bash echo "Hello, World"

Pour pouvoir exécuter le script sans spécifier l'interpréteur à partir de la ligne de commande, vous devrez 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

Surmonter 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 shell bash vous taperiez:

bash hello_world

Veuillez noter que ce n'est pas une bonne idée de remplacer l'interpréteur de commandes car cela peut conduire à 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.

terminal bash