Commencez chaque script par une ligne shebang pour indiquer l'interpréteur à utiliser :
#!/bin/bashAssurez-vous que le script a les permissions d'exécution :
chmod +x nom_du_script.shUtilisez des commentaires pour expliquer le code :
# Ceci est un commentaire- Déclarez les variables sans espaces autour du signe égal :
nom="valeur"- Valeurs par défaut : Utilisez la syntaxe
${variable:-valeur_par_defaut}pour définir une valeur par défaut si la variable n'est pas définie :
nom=${nom:-"valeur_par_defaut"}- Mise en majuscules :
majuscule=${nom^^}- Mise en minuscules :
minuscule=${nom,,}- Capitalisation (première lettre en majuscule) :
capitalise=${nom^}- Remplacement de caractères à la volée : Utilisez la syntaxe
${variable//ancien/nouveau}pour remplacer tous les occurrences d'une sous-chaîne par une autre :
nouveau_nom=${nom//ancien/valeur_nouvelle}Les scripts Bash peuvent recevoir des paramètres d'entrée, qui peuvent être traités de différentes manières :
-
$1, $2, ... : Représentent les premiers paramètres passés au script. Par exemple,
$1est le premier argument,$2est le deuxième, etc.echo "Premier paramètre : $1"
-
$# : Indique le nombre total de paramètres passés au script.
echo "Nombre de paramètres : $#"
-
$@ : Représente tous les paramètres passés au script, en tant que liste. Utilisé dans une boucle pour traiter chaque argument.
for param in "$@"; do echo "Paramètre : $param" done
-
$* : Semblable à
$@, mais tous les paramètres sont traités comme une seule chaîne.echo "Tous les paramètres : $*"
-
$? : Représente le code de retour de la dernière commande exécutée.
echo "Code de retour : $?"
Utilisez if, then, else pour les structures conditionnelles :
if [ condition ]; then
# commandes
else
# autres commandes
fiUtilisez case pour gérer plusieurs conditions de manière plus lisible. Vous pouvez traiter plusieurs valeurs possibles en les séparant par des espaces :
case $variable in
valeur1 | valeur2 | valeur3)
# commandes pour valeur1, valeur2 ou valeur3
;;
valeur4)
# commandes pour valeur4
;;
*)
# commandes par défaut
;;
esacma_fonction_simple() {
echo "Ceci est une fonction simple."
}
# Appel de la fonction
ma_fonction_simplema_fonction_avec_parametres() {
param1=$1
param2=$2
echo "Paramètre 1 : $param1"
echo "Paramètre 2 : $param2"
}
# Appel de la fonction avec des paramètres
ma_fonction_avec_parametres "valeur1" "valeur2"ma_fonction_complexe() {
nom=$1
age=$2
if [ "$age" -lt 18 ]; then
echo "$nom est mineur."
else
echo "$nom est majeur."
fi
}
# Appel de la fonction complexe
ma_fonction_complexe "Alice" 20
ma_fonction_complexe "Bob" 15- Comparaison de chaînes :
- Égal :
== - Différent :
!= - Moins que :
< - Plus que :
>
- Égal :
Exemple :
if [ "$chaine1" == "$chaine2" ]; then
echo "Les chaînes sont identiques"
fi- Comparaison numérique :
- Égal :
-eq - Différent :
-ne - Moins que :
-lt - Plus que :
-gt - Moins ou égal :
-le - Plus ou égal :
-ge
- Égal :
Exemple :
if [ "$nombre1" -lt "$nombre2" ]; then
echo "$nombre1 est inférieur à $nombre2"
fiUtilisez des boucles for, while ou until pour itérer :
for i in {1..5}; do
echo $i
doneVérifiez les erreurs avec $? et utilisez set -e pour arrêter le script en cas d'erreur :
set -e- Utilisez
set -upour traiter les variables non définies comme des erreurs :
set -uUtilisez echo pour afficher des messages ou des résultats :
echo "Message"Utilisez trap pour gérer les signaux et nettoyer avant la sortie :
trap 'commande_de_nettoyage' EXIT- Évitez les noms de variables ambigus.
- Utilisez des noms de fichiers descriptifs.
- Testez vos scripts dans un environnement sûr avant de les exécuter en production.
Ce recueil inclut maintenant des exemples de fonctions simples et complexes, avec et sans paramètres, offrant ainsi une référence complète pour le codage de scripts Bash.