Fonctions du shell et extraits réutilisables
Définissez et utilisez des fonctions Bash pour regrouper des commandes en blocs réutilisables et paramétrés pour votre shell.
Fonctions du shell et extraits réutilisables est une leçon Linux Command Line & Bash Scripting 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 Command Line & Bash Scripting Mastery, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Linux Command Line & Bash Scripting Mastery comprend 4 leçons au total.
Pourquoi utiliser des fonctions shell ?
Une fonction shell regroupe plusieurs commandes sous un même nom afin que vous puissiez les réutiliser sans les retaper.
- Plus rapide que de copier-coller des commandes
- Plus propre que de longs alias
- Peut accepter des arguments, contrairement aux alias
mkcd() {
mkdir -p "$1" && cd "$1"
}Définir une fonction
La forme la plus simple utilise la syntaxe name() { ... }. Les commandes entre les accolades s’exécutent lorsque vous appelez la fonction par son nom.
greet() {
echo "Hello from a function"
}
greetArguments d’une fonction
Les fonctions reçoivent des paramètres positionnels, comme les scripts : $1, $2. $# contient le nombre d’arguments et $@ les développe tous.
backup() {
cp "$1" "$1.bak"
echo "Backed up $1"
}
backup notes.txtValeurs de retour et état de sortie
Les fonctions renvoient un état de sortie avec return N (0 à 255). Utilisez-le pour vérifier la réussite ou l’échec, pas pour renvoyer des données.
is_root() {
[ "$(id -u)" -eq 0 ] && return 0 || return 1
}
if is_root; then echo root; else echo normal; fiRenvoyer une sortie avec echo
Comme return ne transporte qu’un code d’état, la sortie réelle est affichée et capturée avec $( ).
timestamp() {
date +%Y%m%d-%H%M%S
}
name="log-$(timestamp).txt"
echo "$name"Variables locales
Par défaut, les variables définies dans les fonctions sont globales. Utilisez local pour limiter la portée d’une variable à la fonction et éviter d’encombrer votre shell.
count_lines() {
local n
n=$(wc -l < "$1")
echo "$1 has $n lines"
}Valeurs d’arguments par défaut
Utilisez l’expansion de paramètre ${1:-default} pour utiliser une valeur par défaut lorsqu’un argument est manquant.
say() {
local msg="${1:-Hello World}"
echo "$msg"
}
say
say "Custom message"Fonctions ou alias
Les alias remplacent simplement du texte et ne permettent pas de gérer proprement les arguments positionnels. Les fonctions peuvent effectuer des branchements, des boucles et traiter des données en entrée.
- Utilisez un alias pour un raccourci fixe
- Utilisez une fonction lorsque vous avez besoin de logique ou d'arguments
alias ll='ls -la'
lt() { ls -la "${1:-.}" | tail -n "${2:-5}"; }Rendre les fonctions persistantes
Les fonctions définies à l’invite disparaissent lorsque le shell se ferme. Ajoutez-les à ~/.bashrc pour les rendre disponibles dans chaque session.
# Append to ~/.bashrc
extract() {
case "$1" in
*.tar.gz) tar xzf "$1" ;;
*.zip) unzip "$1" ;;
*) echo "Unknown format" ;;
esac
}Lister et supprimer des fonctions
declare -F liste les noms des fonctions ; declare -f name affiche leur corps. Supprimez une fonction avec unset -f name.
declare -F
declare -f greet
unset -f greetComposer des fonctions
Les fonctions peuvent appeler d’autres fonctions, ce qui permet de combiner de petits éléments réutilisables pour créer des outils plus complets.
log() { echo "[$(date +%T)] $*"; }
deploy() {
log "Starting deploy"
log "Done"
}
deployVérification rapide
Vérifiez votre compréhension des fonctions du shell.
Récapitulatif
Vous avez appris à créer des fonctions réutilisables du shell :
- Définissez-les avec
name() { ... }et appelez-les par leur nom - Utilisez
$1,$@et$#pour les arguments, etreturnpour le statut - Définissez la portée des variables avec
localet renvoyez des données viaecho - Rendez-les persistantes dans
~/.bashrcet examinez-les avecdeclare -f
Questions Fréquemment Posées
La leçon « Fonctions du shell et extraits réutilisables » est-elle gratuite ?
Oui — le texte complet de « Fonctions du shell et extraits 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 Command Line & Bash Scripting Mastery, passe à CoddyKit PRO. Le cours Linux Command Line & Bash Scripting Mastery comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Fonctions du shell et extraits réutilisables » ?
Définissez et utilisez des fonctions Bash pour regrouper des commandes en blocs réutilisables et paramétrés pour votre shell. Tu pratiques Linux Command Line & Bash Scripting 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 Command Line & Bash Scripting Mastery ?
Aucune expérience préalable n'est requise. Linux Command Line & Bash Scripting 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 du shell et extraits 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 Command Line & Bash Scripting Mastery ?
Oui. Chaque leçon Linux Command Line & Bash Scripting 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
- Gestion des tâches (bg, fg, jobs)
- Expansion du Shell et recherche par motifs
- Alias et invites personnalisées
- Fonctions du shell et extraits réutilisables