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 $