Outils pour utilisateurs

Outils du site


linux:shell:structures_controle:fonctions

Linux

Fonctions


Déclaration

Pour déclarer une fonction, on utilise la syntaxe suivante :

function maFonction()
{
  instructions
}
 
# ou
 
maFonction()
{
  instructions
}
Les deux syntaxes ont leur avantage :

  • L'absence du mot-clé function permet au script d'être compatible avec les shells Bourne et Korn.
  • La présence du mot-clé function permet d'éviter une collision de nom avec les alias.


Appel et paramètres

Pour appeler une fonction, on utilise la syntaxe suivante :

maFonction param_1 param_2 ... param_n

Les paramètres sont bien sûrs optionnels.
À l'intérieur de la fonction, ils sont représentés, respectivement, par les variables $1, $2,… , $n.
$0 représente toujours le nom du script (et non de la fonction) qui s'exécute.
$# représente le nombre de paramètres passés à le fonction.

Une fonction termine son exécution lorsqu'elle n'a plus d'instructions à exécuter ou lorsqu'elle rencontre l'instruction return ou exit. Ces instructions peuvent être suivies d'un entier positif, qui correspond à la valeur de retour de la fonction. Si aucune valeur n'est spécifiée, c'est la valeur 0 qui est renvoyée.

La valeur de retour de la dernière fonction appelée est stockée dans la variable $?.

Exemple

#!/bin/bash
 
# déclaration d'une fonction
function maFonction() 
{
  local varlocal="je suis la fonction"
  echo "$varlocal"
  echo "Nombres de paramètres : $#"
  echo $1 $prenom
}
 
prenom="Olivier"
 
# appel de ma fonction
maFonction "Hello"
Ce qui donne le résultat suivant:
je suis la fonction
Nombres de paramètres : 1
Hello Olivier

linux/shell/structures_controle/fonctions.txt · Dernière modification : 2022/07/19 14:04 de zandor