Fonctions, arguments et scripts réutilisables
Rendez vos scripts Bash modulaires et faciles à maintenir : définissez des fonctions, transmettez et validez des arguments de ligne de commande, renvoyez des valeurs et structurez des scripts réutilisables pour de nombreuses tâches d’automatisation de serveurs.
Fonctions, arguments et scripts réutilisables est une leçon Linux Server Deployment & SSH Mastery gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Linux Server Deployment & SSH Mastery, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Linux Server Deployment & SSH Mastery comprend 4 leçons au total.
Des scripts aux outils
Vous savez écrire des scripts, automatiser des tâches et gérer les erreurs. L’étape suivante consiste à rendre les scripts réutilisables : organiser le code en fonctions qui acceptent des arguments, afin qu’un même script puisse servir dans de nombreuses situations.
C’est ainsi que des scripts provisoires deviennent de véritables outils d’administration.
Définir une fonction
Une fonction Bash regroupe des commandes sous un nom. Définissez-la une fois et appelez-la autant de fois que nécessaire. Le corps se trouve entre des accolades.
greet() {
echo 'Hello from the function!'
}
greetTransmettre des arguments aux fonctions
Les fonctions reçoivent les arguments par position : $1, $2, etc. $@ représente tous les arguments et $# en indique le nombre.
greet() {
echo "Hello, $1! You are $2 years old."
}
greet Alice 30Arguments au niveau du script
Les mêmes variables positionnelles fonctionnent pour l’ensemble du script. Exécutez ./deploy.sh staging v2 et le script interprète $1 comme « staging » et $2 comme « v2 ».
#!/bin/bash
ENV=$1
VERSION=$2
echo "Deploying $VERSION to $ENV"Valider les arguments
Les outils robustes vérifient leurs entrées. Vérifiez le nombre attendu d’arguments et quittez en affichant un message d’utilisation s’ils sont manquants.
if [ $# -lt 2 ]; then
echo "Usage: $0 <env> <version>"
exit 1
fiRenvoyer un état depuis les fonctions
Les fonctions renvoient un état de sortie via return (0 = réussite). Les appelants le vérifient avec $? ou directement dans un if.
is_root() {
[ "$(id -u)" -eq 0 ]
}
if is_root; then echo 'root'; else echo 'not root'; fiRenvoyer des données depuis les fonctions
Pour renvoyer des données réelles (et pas seulement un état), affichez-les avec echo et capturez-les à l’aide d’une substitution de commande. L’appelant affecte la sortie à une variable.
timestamp() {
date +%Y%m%d_%H%M%S
}
NOW=$(timestamp)
echo "Backup name: backup_$NOW"Variables locales
Par défaut, les variables Bash sont globales, ce qui provoque des erreurs entre les fonctions. Déclarez les variables internes aux fonctions avec local pour les isoler.
add() {
local result=$(( $1 + $2 ))
echo $result
}
echo "Sum: $(add 3 4)"Valeurs par défaut et options nommées
Fournissez des valeurs par défaut pertinentes avec l’expansion des paramètres et analysez les options pour rendre les outils plus faciles à utiliser.
${1:-default}— utilise « default » si$1n’est pas définigetopts— analyse les options de type-vou-f file
ENV=${1:-staging}
echo "Target environment: $ENV"Charger une bibliothèque de fonctions
Placez les fonctions partagées dans leur propre fichier et utilisez source depuis plusieurs scripts pour le charger. Cela évite de copier-coller les fonctions utilitaires partout.
# in lib.sh: define log(), is_root(), etc.
source ./lib.sh
log 'Starting deployment'Bonnes pratiques
Écrivez des scripts faciles à maintenir :
- Décomposez la logique en petites fonctions nommées
- Validez toujours les arguments et affichez l’utilisation
- Utilisez
localpour les variables des fonctions - Partagez les fonctions utilitaires via un fichier de bibliothèque chargé avec
source
Vérification rapide
Testez vos connaissances sur les fonctions Bash.
Récapitulatif
Vous savez désormais créer des outils Bash réutilisables :
- Définir des fonctions et les appeler à plusieurs reprises
- Transmettre et valider des arguments (
$1,$@,$#) - Renvoyer un état avec
returnet des données viaechoet la substitution de commande - Utiliser des variables
localet des bibliothèques partagées avecsource
Ces modèles transforment des scripts ponctuels en boîte à outils d’automatisation facile à maintenir.
Questions Fréquemment Posées
La leçon « Fonctions, arguments et scripts réutilisables » est-elle gratuite ?
Oui — le texte complet de « Fonctions, arguments et scripts réutilisables » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Linux Server Deployment & SSH Mastery, passe à CoddyKit PRO. Le cours Linux Server Deployment & SSH Mastery comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Fonctions, arguments et scripts réutilisables » ?
Rendez vos scripts Bash modulaires et faciles à maintenir : définissez des fonctions, transmettez et validez des arguments de ligne de commande, renvoyez des valeurs et structurez des scripts réutili… Tu pratiques Linux Server Deployment & SSH Mastery avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Linux Server Deployment & SSH Mastery ?
Aucune expérience préalable n'est requise. Linux Server Deployment & SSH Mastery sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.
Combien de temps prend la leçon « Fonctions, arguments et scripts réutilisables » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Linux Server Deployment & SSH Mastery ?
Oui. Chaque leçon Linux Server Deployment & SSH Mastery inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Introduction aux scripts Bash
- Automatiser les tâches du serveur
- Gestion des erreurs et journalisation dans les scripts
- Fonctions, arguments et scripts réutilisables