Syntaxe : return [n]
La commande interne return permet de sortir d’une fonction avec comme code de retour la valeur n (0 à 255). Celle-ci est mémorisée dans le paramètre spécial ?.
Si n n'est pas précisé, le code de retour fourni est celui de la dernière commande exécutée par la fonction.
Dans le programme shell return0, la fonction f retourne le code de retour 5 au corps du programme shell.
#!/bin/bash
# @(#) retour0
function f
{
echo coucou
return 5
echo a demain # jamais execute
}
f
echo code de retour de f : $?
$ return0 coucou code de retour de f : 5 $
Le programme shell return1 illustre le cas où return retourne le code de retour de la dernière commande exécutée par la fonction.
#!/bin/bash
# @(#) return1
function g
{
ls /bin/toto &> /dev/null # provoque une erreur
return
}
g
echo code de retour de g : $?
$ ls /bin/toto &>/dev/null $ echo $? 2 => code de retour de la commande ls $ $ return1 code de retour de g : 2 $
Remarque : il ne faut confondre return et exit. Cette dernière arrête l’exécution du programme shell qui la contient.
Le programme shell return2 définie une fonction h qui arrête l’exécution de ce programme en positionnant un code de retour égal 12.
#!/bin/bash
# @(#) return2
function h
{
echo Bonjour !
exit 12 # arrete l'execution du programme avec un code de retour egal a 12
}
h
echo FIN # jamais execute
$ return2 Bonjour ! $ echo $? 12 => code de retour positionné par la fonction h $