Shell Scripting - Introduction & Shebang
Table des matières:
- Directive sur les interprètes de shebang
- Utilisation de Shebang dans les scripts Bash
- Exemple de script
- Surmonter le Shebang
- Conclusion
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- Utilisebashpour analyser le fichier.#!/usr/bin/env perl- Utilise la commandeenvpour trouver le chemin vers l'exécutableperl.#!/usr/bin/pythonExécute le fichier en utilisant le binairepython.
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.
-
Utilisation du chemin absolu vers le binaire bash:
#!/bin/bashUtilisation 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
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 bashComment exécuter Bash sous Ubuntu sous Windows 10
L`activation de Windows Subsystem pour Linux vous permettra d`exécuter Bash sur Ubuntu sous Windows 10, scripts Bash , Outils de ligne de commande Linux, premiers outils Linux
Tableaux Bash
Les tableaux sont l'une des structures de données les plus utilisées et les plus fondamentales. Dans cet article, nous allons couvrir les tableaux Bash et expliquer comment les utiliser dans vos scripts Bash.
Bash for loop
Il existe 3 constructions de boucle de base dans les scripts Bash, pour la boucle, la boucle while et la boucle until. Dans ce didacticiel, nous couvrirons les bases des boucles for dans Bash ainsi que les instructions break et continue pour modifier le flux d'une boucle.







