Une fonction sert à réutiliser du code sans tout réécrire. Elle permet de donner un nom à une série de commandes et de les exécuter facilement plusieurs fois dans un script.
dire_bonjour() {
echo "Bonjour !"
}
Ici : - dire_bonjour est le nom de
la fonction.
{ ... } contiennent les
commandes à exécuter.Pour exécuter la fonction :
dire_bonjour
Résultat :
Bonjour !
On peut envoyer des valeurs à la fonction (comme dans les commandes Linux).
dire_bonjour() {
echo "Bonjour $1 !"
}
Appel :
dire_bonjour Pierre
Résultat :
Bonjour Pierre !
$1 = premier argument
$2 = deuxième argument, etc.
$@ = tous les arguments
$# = nombre d'arguments reçus
Chaque commande (et fonction) renvoie un code de
retour : - 0 = succès
ma_fonction() {
if [[ -f "$1" ]]; then
echo "Le fichier existe"
return 0
else
echo "Fichier introuvable"
return 1
fi
}
ma_fonction "/etc/hosts"
echo "Code de retour : $?"
$? donne le code de retour de la dernière commande
ou fonction.
Les fonctions ne peuvent pas renvoyer du texte
avec return. Elles utilisent echo, et on
capture le résultat avec $() :
get_date() {
echo "$(date +%F)"
}
aujourd_hui="$(get_date)"
echo "Nous sommes le $aujourd_hui"
{ ... }.$1, $2, etc.echo + $().