Introduction au Script Bash (avec exemples)
Bash est l’un des outils de scripting les plus populaires disponibles sous Unix. C’est l’acronyme de Bourne Again Shell. C’est un outil puissant pour tout utilisateur de Linux ou administrateur système. Apprenons à utiliser Script Bash !
Unix a 2 grandes catégories de shells.
- Bourne-type shell
- C shell
Bourne shell est également classé comme :
- Korn shell (ksh)
- Bourne shell (sh)
- POSIX shell (sh)
- Bourne Again shell (bash)
C shell est également classé comme :
- C shell (csh)
- TENEX (TOPS) C shell (tcsh)
Les scripts Bash sont un élément extrêmement puissant et utile pour le développement. Il permet de raccourcir les tâches répétitives en un seul appel de fonction. De nombreuses commandes longues peuvent être consolidées en un seul code exécutable.
Bash est facilement disponible sur presque toutes les versions de Linux et ne nécessite aucune installation séparée. La liste des shells disponibles peut être vérifiée en tapant la commande suivante :
cat /etc/shells
Le résultat sera quelque chose comme indiqué ci-dessous :
/bin/bash /bin/sh /bin/tcsh /bin/csh
Sommaire
Pourquoi utiliser les fonctions Bash ?
Les fonctions Bash peuvent :
- Éliminer les tâches répétitives
- Gagner du temps
- Donne une séquence d’activités bien structurée, modulaire et organisée.
- Avec les fonctions, nous pouvons fournir des valeurs dynamiques aux commandes en utilisant des arguments de ligne de commande
- Peut simplifier les commandes complexes en une seule opération
- Une fois créé, il peut être exécuté un nombre illimité de fois par n’importe qui
- Les flux logiques peuvent être créés en utilisant des fonctions bash
- Les fonctions Bash peuvent être exécutées au démarrage du serveur ou en ajoutant une tâche cron programmée
- Les commandes peuvent être déboguées
- Peut avoir des commandes shell interactives
Bash est sans aucun doute un excellent outil pour faciliter votre travail et améliorer votre projet. Les possibilités d’utilisation sont illimitées, c’est pourquoi nous ne vous apprendrons aujourd’hui que les bases. Préparez-vous à écrire votre premier script !
Débuter avec un Script Bash
Avant de commencer, vous devez effectuer une connexion SSH à votre serveur VPS. Si vous avez des difficultés à le faire, consultez ce tutoriel utile.
Si vous n’avez pas encore de VPS, vous pouvez en commander un auprès de Hostinger.
Pour commencer avec les options de commande de base, vous pouvez vérifier les pages du manuel de bash en tapant :
man bash
Ensuite, nous devrons créer un fichier .sh. Pour cela, nous utiliserons l’éditeur VIM. Pour créer un fichier, utilisez une commande comme celle-ci :
vim exempleDeFonction.sh
Nous allons maintenant passer au fichier .sh, où nous pouvons le modifier.
Vous obtiendrez ainsi un résultat complet sur les commandes Bash et leur utilisation. Chaque script de Bash doit commencer par la ligne ci-dessous :
#!/bin/bash
La commande ci-dessous affiche le chemin du script bash.
which bash
Cela donnera le résultat indiqué ci-dessous :
/bin/bash
La syntaxe commune de bash est :
function nomDuFonction { premiere commande deuxieme command }
Cela peut aussi s’écrire comme suit :
nomDuFonction (){ premiere commande deuxieme command }
En une seule ligne, cela peut s’écrire comme :
nomDuFonction() { premiere commande; deuxieme commande; } caca
Voici un exemple d’une telle fonction : nous créons d’abord un répertoire, puis nous modifions le chemin d’accès pour pointer vers le nouveau répertoire :
exempleDeFonction () { mkdir -p $1 cd $1 }
$1 représente l’argument d’entrée de la ligne de commande. Bash peut créer des entrées dynamiques dans la commande. Pour vérifier cette fonction, vous pouvez exécuter :
exempleDeFonction monRep
Ici, monRep est un nom de répertoire valide à créer. Si vous vérifiez le répertoire de travail actuel en utilisant la commande pwd, vous pouvez voir que vous vous trouvez actuellement dans le répertoire monRep nouvellement créé.
De même, toute commande couramment utilisée peut être ajoutée comme fonction de bash.
N’oubliez pas que lorsque vous avez terminé d’utiliser l’éditeur VIM pour modifier votre fichier .sh, vous devez sauvegarder et quitter en appuyant sur la touche ECHAP pour passer en mode commande, puis taper :wq pour sauvegarder et quitter.
Fonctions Bash de base
L’un des exemples de base de la fonction bash est présenté ci-dessous :
#!/bin/bash fonctiondetest(){ echo "Ma première fonction" } fonctiondetest
Si vous enregistrez ce script dans le fichier fonctionDeTest.sh et que vous l’exécutez avec ./fonctionDeTest.sh, vous pourrez alors voir le résultat sous cette forme :
Ma première fonction
Echo imprime le résultat sur la console. Si vous inversez la position de la définition de la fonction avec l’appel, cela entraînera une erreur. L’extrait ci-dessous donne une erreur.
#!/bin/bash fonctiondetest fonctiondetest(){ echo "Ma première fonction" }
Vous devrez donc d’abord définir la fonction et ensuite l’invoquer.
Les fonctions de script bash peuvent accepter un nombre illimité de paramètres. L’exemple ci-dessous accepte deux paramètres :
#!/bin/bash fonctiondetest(){ echo $1 echo $2 }
fonctiondetest "Hello" "World"
Vous pouvez également utiliser la saisie interactive et effectuer des fonctions bash. Voici un exemple :
#!/bin/bash addition(){ sum=$(($1+$2)) return $sum } read -p "Entrez un numéro : " int1 read -p "Entrez un numéro : " int2 add $int1 $int2 echo "Le résultat est : " $?
Dans l’exemple ci-dessus, la valeur de l’addition est assignée dans une somme variable, et celle-ci est retournée par la fonction. La saisie interactive est effectuée en utilisant read pour les deux nombres. Enfin, le résultat est imprimé en utilisant $? qui stocke la valeur de retour de la fonction $sum.
Les fonctions Bash retournent toujours une seule valeur.
Vous pouvez laisser des commentaires dans le fichier en ajoutant le symbole # pour laisser des notes utiles.
Les scripts Bash supportent :
- Boucle while
- Boucle for
- Instruction conditionnelle
- Fonction ET
- Fonction OU
- L’instruction Case
Vous trouverez ci-dessous un bref exemple de Boucle While.
#!/bin/bash isvalid=true count=1 while [ $isvalid ] do echo $count if [ $count -eq 5 ]; then break fi ((count++)) done
L’exemple ci-dessus utilise les déclarations « while » et « if ». Il exécute la boucle while 5 fois avant de quitter après avoir vérifié la déclaration conditionnelle if.
Le résultat sera :
1 2 3 4 5
La boucle for peut être utilisée pour incrémenter ou décrémenter les compteurs. Par exemple :
#!/bin/bash for (( count=10; count>0; count-- )) do echo -n "$count " done
Le résultat de cette boucle sera :
10 9 8 7 6 5 4 3 2 1
Dans un script bash && représente un ET logique, tandis que || représente un OU logique.
Avec les déclarations If, nous pouvons également définir Else if. Voici un exemple :
#!/bin/bash echo "Entrez un numéro valide" read n if [ $n -eq 101 ]; then echo "Voici le premier numéro" elif [ $n -eq 510 ]; then echo "Voici le deuxième numéro" elif [ $n -eq 999 ]; then echo "Voici le troisième numéro" else echo "Aucun numéro ici" fi
Le même exemple ci-dessus peut également être écrit en utilisant l’instruction Case comme indiqué ci-dessous :
#!/bin/bash echo "Entrez un numéro valide" read n case $n in 101) Echo "Voici le premier numéro" ;; 510) echo "Voici le deuxième numéro" ;; 999) echo "Voici le troisième numéro" ;; *) echo "Aucun numéro ici" ;; esac
Dans l’instruction case ;; sépare chaque bloc d’instructions.
Conclusion
Pour conclure, ceci complète notre aperçu des fonctions de base du script bash. Bash est un outil vraiment puissant et peut être facilement maîtrisé. À partir de là, vous pouvez vous plonger dans la création d’autres exemples et vous amuser à explorer d’autres utilisations potentielles des fonctions de bash. Bonne chance !