Comme toutes commandes Linux, une fonction retourne également un code d'erreur.
Si le code erreur n'est pas spécifié, celui retourné par défaut correspond au code erreur de la dernière commande exécutée dans la fonction.
La commande return permet de retourner le code erreur de la fonction concernée. Ce code doit obligatoirement correspondre à un nombre compris entre 0 et 255.
Le code erreur retourné par la fonction est récupérable grâce à la variable $?.
Exemple :
Le script suivant test si l'utilisateur saisi existe sur le système.
$ nl fonction02.sh
1 #!/bin/bash
2 function pause {
3 echo "Appuyer sur Entrée pour continuer"
4 read x
5 }
6 function existUser {
7 echo -e "Saisir le nom d'un utilisateur : \c"
8 read user
9 if grep -q "^$user:" /etc/passwd ; then
10 return 0
11 fi
12 return 1
13 }
14 while true
15 do
16 clear
17 echo "- 1 - Savoir si un utilisateur existe"
18 echo "- 2 - Connaitre l'UID d'un utilisateur"
19 echo "- 3 - Fin"
20 echo -e "Votre choix : \c"
21 read choix
22 case $choix in
23 1) if existUser
24 then
25 echo "L'utilisateur $user existe"
26 else
27 echo "l'utilisateur $user n'existe pas"
28 fi
29 ;;
30 2) echo "Option non disponible"
31 ;;
32 3) exit 0
33 ;;
34 esac
35 pause
36 done
$