Les fonctions Bash regroupent les commandes associées sous un seul nom. Lorsque vous appelez ce nom, le bloc entier s'exécute. Vous pouvez transmettre des arguments pour personnaliser le comportement et renvoyer des valeurs pour communiquer les résultats. Cela garde votre code propre et facile à maintenir.
Linux domine les environnements de serveur à l'échelle mondiale, la maîtrise des fonctions Bash est donc plus que jamais importante. Les fonctions transforment les scripts compliqués en automatisation propre et réutilisable.
Ce guide vous guide à travers la syntaxe de base jusqu'aux cas d'utilisation avancés. Vous apprendrez à déclarer des fonctions, à transmettre des paramètres, à gérer les valeurs de retour et à découvrir dix exemples pratiques que vous pouvez utiliser dans vos propres scripts.
TL;DR
- Les fonctions Bash sont nommées blocs de code que vous pouvez réutiliser dans vos scripts
- Définir des fonctions à l'aide nom_fonction() { commandes ; } syntaxe
- Passer des arguments en utilisant $1, $2, $3 paramètres de position
- Les fonctions améliorent la lisibilité du code, la modularité et la maintenance
- Utiliser retour pour quitter les fonctions et communiquer les codes d'état (0 = succès, non nul = échec)
- Les fonctions peuvent être partagées entre les scripts en utilisant source or exporter -f
- Des exemples pratiques incluent la sauvegarde de fichiers, la surveillance des disques, la validation des entrées et la vérification des services.
Qu’est-ce que le script Bash ?

Les scripts Bash sont une méthode d'automatisation des tâches utilisant le shell Bash. Il sert d'interface de ligne de commande par défaut pour Linux et reste un outil standard sur macOS. Un script Bash est un programme codé dans le langage de script Bash, qui peut être exécuté dans un terminal ou en tant que fichier de script autonome.
Avec L'utilisation du bureau Linux est en constante augmentation et le système d'exploitation dominant les environnements de serveur dans le monde entier, les compétences en script Bash sont devenues précieuses pour les professionnels de l'informatique. Le langage s'intègre bien aux outils DevOps tels que Docker, Kubernetes et les pipelines CI/CD.
Les scripts Bash vous permettent d'accomplir des tâches allant de commandes simples à des automatisations et administrations système complexes. Vous pouvez automatiser des tâches répétitives, développer des scripts de maintenance, créer des pipelines de déploiement, gérer des systèmes logiciels et manipuler des données.
Qu'est-ce qu'une fonction Bash ?

Une fonction Bash peut être définie comme un ensemble de commandes définies dans un script Bash ou définies de manière interactive à l'invite de commande, selon le cas d'utilisation. Une fois définie, une fonction Bash peut être appelée plusieurs fois dans le script ou dans d'autres scripts, tout comme une commande shell classique.
Les fonctions Bash vous permettent de créer des blocs de code réutilisables capables d'effectuer des opérations complexes, d'organiser votre code et de simplifier vos scripts. Vous pouvez transmettre des arguments à une fonction Bash, puis les utiliser dans la fonction pour effectuer des opérations. Les fonctions Bash renvoient des valeurs que vous pouvez utiliser ailleurs dans votre script.
Nous couvrirons plusieurs styles de mise en œuvre spécifiques, notamment fonction_simple pour la logique de base, entrées_simples pour la gestion des arguments et des structures avancées telles que fibonnaci_recursion.
Principes fondamentaux des fonctions Bash important pour tout administrateur système ou ingénieur DevOps travaillant avec l’automatisation. Les sections suivantes couvrent chacun de ces types en détail.
Pourquoi utiliser les fonctions Bash ?

Maintenant que la définition des fonctions Bash est abordée, passons en revue leurs principaux avantages. Cette section vous aide à comprendre où les fonctions sont les plus utiles.
Réutilisabilité
Vous créez une fonction Bash et vous disposez d’un outil puissant. Vous pouvez écrire un bloc de code une fois et le réutiliser plusieurs fois dans votre script ou même dans d'autres scripts.
Cela rend votre code plus efficace et vous fait gagner du temps en éliminant la duplication. La maintenance de votre code devient plus simple car il vous suffit de modifier la fonction au même endroit.
Lisibilité
Les scripts complexes peuvent être difficiles à déchiffrer. Les fonctions Bash résolvent ce problème en décomposant votre script en parties plus petites et plus gérables.
Chaque fonction répond à un objectif spécifique avec un nom descriptif qui explique son rôle. Cela vous aide, ainsi que les autres, à comprendre et à maintenir le code plus facilement.
Modularité
Les fonctions organisent votre code. Vous pouvez diviser la logique en modules plus petits, ce qui maintient la structure de votre script propre et facile à gérer.
Et si vous devez ajouter une nouvelle fonctionnalité, vous pouvez le faire sans toucher aux autres parties de votre script. Lorsqu'il est temps de supprimer ou de modifier des fonctionnalités, le reste de votre script reste intact.
Paramètres de la fonction Bash
Vous pouvez transmettre des arguments, ou paramètres, à vos fonctions. Ces arguments permettent à vos fonctions de s'adapter et d'effectuer différentes actions en fonction des entrées qu'elles reçoivent.
Cela ouvre de nombreuses possibilités tout en rendant vos fonctions plus polyvalentes et adaptables. Au lieu d'écrire plusieurs fois du code similaire, vous écrivez une fonction qui gère différentes entrées.
Comment et où utiliser les fonctions Bash ?

Maintenant, soyons un peu techniques avec notre définition et commençons par un bref exemple de la façon de créer des fonctions Bash. La syntaxe suivante peut être utilisée dans les environnements basés sur Unix. Si vous travaillez sous Windows, vous pouvez installer Linux Bash sur Windows 10 à suivre avec ces exemples.
Création d'une fonction Bash
Commencez par utiliser la structure de commande suivante :
nom_fonction () {
# commandes vont ici
}
Une fois que vous avez créé la fonction, vous pouvez l'utiliser dans votre code à tout moment. Voici un exemple fonctionnel :
saluer () {
echo "Bonjour, 1 $!"
}
Appelez cette fonction avec saluer le monde pour afficher « Hello, World ! » Le $1 représente le premier argument passé à la fonction.
Voici quelques exemples pratiques supplémentaires que vous pouvez utiliser dans vos propres scripts :
# Créer une sauvegarde de n'importe quel fichier
fichier_de sauvegarde () {
cp « 1 $ » « 1 $.bak »
echo "Sauvegarde créée : $1.bak"
}
# Vérifier si un répertoire existe, créer si ce n'est pas le cas
assurer_dir () {
si [ ! -d « 1 $ »] ; alors
mkdir -p « 1 $ »
echo « Répertoire créé : $1 »
fi
}
# Enregistrer les messages avec horodatage
log_message () {
echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1"
}
Vous définissez ces fonctions Bash personnalisées une fois et vous les appelez chaque fois que nécessaire tout au long de votre script.
Principes essentiels de la syntaxe des fonctions
Les fonctions se comportent comme des mini-scripts dans votre script principal, mais elles partagent la mémoire du shell. Gardez ces trois comportements spécifiques à l’esprit lorsque vous les rédigez.
Portée variable (locale ou mondiale)
Les variables à l'intérieur des fonctions sont globales par défaut. Si vous définissez ma_var="test" à l'intérieur d'une fonction, il remplace tout élément existant ma_var dans votre scénario. Utilisez toujours locale confiner les variables à la fonction évite les effets secondaires :
local my_var="valeur"
Paramètres de position
Les fonctions lisent les arguments en utilisant le même $1, $2, et $@ variables sous forme de scripts. Ceux-ci sont locaux à la fonction et réinitialisés lorsque la fonction se termine. Les arguments originaux du script ne sont pas accessibles dans la fonction, sauf si vous les transmettez explicitement.
Valeurs de retour
Les fonctions Bash ne renvoient pas de données comme les fonctions Python ou JavaScript. Le retour La commande définit uniquement un état de sortie (0-255) pour indiquer le succès ou l'échec. Pour renvoyer des données réelles (comme une chaîne ou un calcul), écho le résultat et capturez-le lors de l'appel de la fonction :
résultat=$(ma_fonction)
Top 10 des exemples de fonctions Bash utiles
Maintenant que vous comprenez les fonctions Bash et comment les créer, voici dix exemples pratiques que vous pouvez ajouter à vos scripts. Chaque fonction résout un problème courant et démontre la structure, les arguments et les valeurs de retour appropriés.
1. Fonction de sauvegarde de fichiers
Crée une sauvegarde horodatée de n'importe quel fichier :
fichier_de sauvegarde () {
fichier local = "$1"
sauvegarde locale = ”${fichier}.$(date +%Y%m%d_%H%M%S).bak”
if [ -f « $fichier » ]; alors
cp "$fichier" "$sauvegarde"
echo "Sauvegarde créée : $backup"
retourner 0
autre
echo "Erreur : fichier introuvable"
retour 1
fi
}
Usage: fichier_sauvegarde /etc/nginx/nginx.conf
2. Vérificateur d'annuaire
Vérifie si un répertoire existe et le crée si nécessaire :
assurer_dir () {
répertoire local = ”$1″
si [ ! -d "$rép"]; alors
mkdir -p « $rép »
echo "Créé : $dir"
fi
}
Usage: assurer_rép /var/log/myapp
3. Enregistreur horodaté
Ajoute des horodatages aux messages de journalisation pour le débogage :
log_message () {
niveau local = ”$1″
message local = ”$2″
echo "[$(date '+%Y-%m-%d %H:%M:%S')] [$level] $message"
}
Usage: log_message « INFO » « Script démarré »
4. Moniteur d'espace disque
Vérifie l'utilisation du disque et avertit si elle dépasse un seuil :
check_disk_space () {
seuil local = ”${1:-80}”
utilisation locale = $ (df / | tail -1 | awk '{print $5}' | tr -d '%')
if [ "$usage" -gt "$threshold" ]; alors
echo "Avertissement : utilisation du disque à ${usage}%"
retour 1
fi
retourner 0
}
Usage: check_disk_space 90
5. Validateur d'entrée
Valide que l'entrée utilisateur n'est pas vide :
valider_input () {
entrée locale = "$1"
nom local = "$2"
si [ -z "$entrée" ]; alors
echo "Erreur : $name ne peut pas être vide"
retour 1
fi
retourner 0
}
Usage: validate_input "$nom d'utilisateur" "Nom d'utilisateur"
6. Vérificateur d'état du service
Vérifie si un service est en cours d'exécution et signale l'état :
check_service () {
service local = ”$1″
si systemctl est actif –quiet « $service » ; alors
echo "$service est en cours d'exécution"
retourner 0
autre
echo "$service n'est pas en cours d'exécution"
retour 1
fi
}
Usage: check_service nginx
7. Extracteur d'extensions de fichiers
Extrait l'extension d'un nom de fichier :
get_extension() {
nom de fichier local = ”$1″
echo "${nom de fichier##*.}"
}
Usage: ext=$(get_extension « document.pdf »)
8. Coupe-bordure
Supprime les espaces de début et de fin des chaînes :
trim_string() {
str locale = "$1"
str=”${str#”${str%%[![:space:]]*}”}”
str=”${str%”${str##*[![:space:]]}”}”
écho "$str"
}
Usage: clean=$(trim_string ” bonjour tout le monde “)
9. Archiveur de fichiers sécurisé
Déplace un fichier vers un répertoire $HOME/.trash personnalisé au lieu de le supprimer définitivement. Il ajoute un horodatage au nom de fichier pour éviter d'écraser les sauvegardes précédentes.
safe_remove() {
fichier local = "$1"
poubelle locale = "$HOME/.trash"
# Ajouter un horodatage pour éviter d'écraser les fichiers existants
local new_name=”$(nom de base “$file”)_$(date +%s)”
mkdir -p « $trash »
if [ -e « $fichier » ]; alors
mv "$fichier" "$trash/$nouveau_nom"
echo "Déplacé vers l'archive : $file -> $trash/$new_name"
autre
echo "Erreur : $fichier introuvable"
retour 1
fi
}
Usage: safe_remove old_script.sh
10. Journaliste de statut
Illustre le mécanisme de retour de la fonction Bash pour la gestion des erreurs. La valeur de retour de la fonction Bash indique le succès (0) ou l'échec (différent de zéro) :
processus_data () {
fichier local = "$1"
si [ ! -f "$fichier"]; alors
retour 1
fi
# Traiter le fichier
chat «$fichier» | toilettes -l
retourner 0
}
# Vérifiez la valeur de retour
process_data « data.txt »
si [ $? -éq 0 ]; alors
echo "Traitement terminé"
autre
echo "Échec du traitement"
fi
Le $? La variable capture l'état de sortie du dernier appel de commande ou de fonction.
| Fonction | But | Caractéristique clé |
| fichier_sauvegarde | Créer des sauvegardes de fichiers | Dénomination horodatée |
| assurer_rép | Gestion d'annuaire | Crée si manquant |
| message_journal | Enregistrement | Préfixe d'horodatage |
| check_disk_space | Surveillance du système | Alertes de seuil |
| valider_entrée | Validation des entrées | Vérification de chaîne vide |
| check_service | Surveillance des services | Intégration système |
| obtenir_extension | Analyse de chaînes | Expansion des paramètres |
| trim_string | Nettoyage des chaînes | Suppression des espaces |
| safe_remove | Suppression sécurisée | Répertoire de la corbeille |
| données_processus | Gestion des erreurs | Valeurs de retour |
Exécuter des fonctions Bash sur un VPS
Les fonctions Bash deviennent puissantes lorsqu'elles sont exécutées sur un environnement de serveur dédié. Notre Serveur virtuel Linux vous donne un accès root complet pour personnaliser votre environnement shell, créer des bibliothèques de fonctions à l'échelle du système et automatiser les tâches de gestion du serveur sans restrictions.
Avec un VPS, vous pouvez stocker des fonctions réutilisables dans /etc/profile.d/ pour tous les utilisateurs, planifiez des scripts basés sur des fonctions via des tâches cron et créez des pipelines d'automatisation pour le déploiement et la maintenance. Nous proposons des serveurs répartis sur plus de 12 sites dans le monde avec des vitesses réseau allant jusqu'à 40 Gbit/s et une mémoire DDR5, ce qui signifie une exécution de scripts plus rapide et un traitement des données plus fluide.
Ce niveau de contrôle fait d'un VPS idéal pour toute personne sérieuse dans les scripts shell et l'automatisation du système.
Conclusion
Les fonctions Bash sont essentielles à la création de scripts modulaires et réutilisables. Ils vous permettent de regrouper les commandes associées et d’encapsuler une logique complexe pour rendre votre code plus facile à lire et à maintenir. Si vous gérez une infrastructure cloud, automatisez des pipelines de déploiement ou gérez des tâches d'administration système de routine, les fonctions vous aident à garder vos scripts organisés et efficaces.
Dans cet article, nous avons couvert les bases des fonctions Bash, notamment comment les définir et les appeler, dix exemples de fonctions pratiques et des cas d'utilisation courants pour vous aider à démarrer vos propres projets d'automatisation.
Combiné avec des structures de contrôle comme le Bash si déclaration, les fonctions vous fournissent les éléments de base d’une automatisation puissante. En utilisant les fonctions Bash dans vos scripts, vous pouvez écrire un code plus propre et plus modulaire, plus facile à comprendre et à maintenir.