Introduction au Script Bash (avec exemples)

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

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 !

Author
L'auteur

Ismail

Ismail est un spécialiste du référencement et de la localisation chez Hostinger. Il est passionné par la technologie et le développement web et possède des années d'expérience dans le domaine informatique. Ses passe-temps incluent les jeux vidéo et le football.