14.6. Commande interne return

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  
$