Tutoriel de Scripting Shell : Scripts Shell Étendus

Introduction aux Scripts Shell Étendus

Bonjour, aspirants programmeurs ! Je suis ravi de vous guider à travers le monde passionnant du scripting shell Unix/Linux. En tant qu'enseignant en informatique avec des années d'expérience, j'ai vu des dizaines d'étudiants s'illuminer lorsqu'ils saisissent ces concepts. Aujourd'hui, nous plongerons dans les scripts shell étendus, en nous basant sur les bases pour créer des programmes plus puissants et flexibles. Ne vous inquiétez pas si vous êtes nouveau dans ce domaine - nous allons commencer par les bases et progresser ensemble !

Unix / Linux - Shell Scripting

Qu'est-ce que les Scripts Shell Étendus ?

Les scripts shell étendus sont comme les couteaux suisses du monde Unix/Linux. Ils nous permettent de créer des programmes plus complexes et riches en fonctionnalités en utilisant les commandes et structures intégrées du shell. Pensez à eux comme des recettes qui disent à votre ordinateur comment mijoter une solution délicieuse à vos problèmes !

Structure de Base d'un Script Shell Étendu

Commençons par le squelette de notre script :

#!/bin/bash

# Votre code va ici

exit 0

Cela peut sembler simple, mais c'est la fondation de chaque script que nous écrirons. Le #!/bin/bash est appelé un shebang, et il indique au système quel interpréteur utiliser. Le exit 0 à la fin, c'est comme dire "au revoir" à votre ordinateur, en indiquant que le script s'est terminé avec succès.

Variables et Types de Données

Dans le scripting shell, les variables sont comme des boîtes où nous stockons des informations. Voyons comment les utiliser :

#!/bin/bash

name="Alice"
age=25
pi=3.14

echo "Hello, $name! You are $age years old."
echo "Pi is approximately $pi"

exit 0

Lorsque vous exécutez ce script, il affichera :

Hello, Alice! You are 25 years old.
Pi is approximately 3.14

Notez comment nous utilisons $ pour faire référence à nos variables. C'est comme dire à l'ordinateur : "Hey, prends ce qui est dans cette boîte pour moi !"

Structures de Contrôle

Instructions If-Else

Maintenant, faisons notre script un peu plus intelligent avec un peu de prise de décision :

#!/bin/bash

age=18

if [ $age -ge 18 ]; then
echo "You can vote!"
else
echo "Sorry, you're too young to vote."
fi

exit 0

Ce script vérifie si l'âge est supérieur ou égal à 18. Si c'est le cas, il vous dit que vous pouvez voter. Sinon, il dit que vous êtes trop jeune. Le -ge signifie "supérieur ou égal à" en langage shell.

Boucles

Les boucles sont comme des carrousels pour votre code. Voyons un for loop en action :

#!/bin/bash

for i in {1..5}
do
echo "Round $i"
done

exit 0

Cela comptera de 1 à 5, en disant "Round" à chaque fois. C'est comme si le script était un instructeur de fitness, comptant vos répétitions !

Fonctions

Les fonctions sont comme des mini-scripts dans votre script. Ce sont des blocs de code réutilisables :

#!/bin/bash

greet() {
echo "Hello, $1! Nice to meet you."
}

greet "Bob"
greet "Alice"

exit 0

Ce script définit une fonction greet qui dit bonjour à qui vous lui dites. Le $1 est une variable spéciale qui contient le premier argument passé à la fonction.

Entrée et Sortie

Faisons notre script interactif :

#!/bin/bash

echo "What's your name?"
read name

echo "Hello, $name! How old are you?"
read age

if [ $age -ge 18 ]; then
echo "You can vote, $name!"
else
echo "Sorry $name, you're too young to vote."
fi

exit 0

Ce script demande votre nom et votre âge, puis décide si vous pouvez voter. C'est comme un officiel électoral amical !

Travail avec des Fichiers

Les scripts shell sont géniaux pour la gestion des fichiers. Créons un script qui sauvegarde un fichier :

#!/bin/bash

original_file="important_data.txt"
backup_file="important_data_backup.txt"

if [ -f "$original_file" ]; then
cp "$original_file" "$backup_file"
echo "Backup created successfully!"
else
echo "Error: $original_file not found."
fi

exit 0

Ce script vérifie si important_data.txt existe, et si c'est le cas, crée une sauvegarde. C'est comme avoir un assistant personnel pour vos fichiers !

Gestion des Erreurs

Ajoutons une gestion des erreurs pour rendre nos scripts plus robustes :

#!/bin/bash

divide() {
if [ $2 -eq 0 ]; then
echo "Error: Cannot divide by zero!"
return 1
fi
result=$(($1 / $2))
echo "Result: $result"
return 0
}

divide 10 2
divide 10 0

exit 0

Ce script définit une fonction divide qui vérifie la division par zéro. C'est comme avoir un tuteur de mathématiques qui attrape vos erreurs avant que vous ne les fassiez !

Arguments de Ligne de Commande

Enfin, créons un script qui utilise des arguments de ligne de commande :

#!/bin/bash

if [ $# -eq 0 ]; then
echo "Usage: $0 <name>"
exit 1
fi

echo "Hello, $1! Welcome to shell scripting."

exit 0

Exécutez ce script avec ./script.sh Alice, et il saluera Alice. Le $# vérifie le nombre d'arguments, et $0 est le nom du script lui-même.

Conclusion

Félicitations ! Vous avez刚刚 pris vos premiers pas dans le monde du scripting shell étendu. Souvenez-vous, la pratique rend parfait. Essayez de combiner ces concepts, expérimentez avec vos propres idées, et bientôt vous scripterez comme un pro !

Voici un tableau résumant les concepts clés que nous avons couverts :

Concept Description Exemple
Variables Stocker et récupérer des données name="Alice"
If-Else Prendre des décisions if [ $age -ge 18 ]; then ... fi
Boucles Répéter des actions for i in {1..5}; do ... done
Fonctions Blocs de code réutilisables greet() { ... }
Entrée/Sortie Interagir avec les utilisateurs read name
Opérations sur des Fichiers Gérer des fichiers cp "$original_file" "$backup_file"
Gestion des Erreurs Gérer les problèmes potentiels if [ $2 -eq 0 ]; then ... fi
Arguments de Ligne de Commande Utiliser les paramètres du script $1, $2, $#

Continuez à écrire des scripts, continuez à apprendre, et surtout, amusez-vous ! Le monde du scripting shell est vaste et passionnant, et vous venez de commencer votre voyage. Bon codage !

Credits: Image by storyset