Shell script [exit/return/source]

asevere Messages postés 13521 Statut Webmaster -  
lami20j Messages postés 21644 Statut Modérateur, Contributeur sécurité -
Bonjour à tous

Voilà, une petite question que je me pose, j'ai déjà une réponse qui me satisafait, mais je suis curieux de savoir ce que vous utilisez dnas ce genre de cas.

Le problème est simple, vous ecrivez un script, qui retourne un statut différent selon les cas, voir qui se coupe dans certain cas, enfin un truc tout bête. Le plus basique étant le suivant
#!/bin/sh
exit 0;
Ce script, vous ne controller pas la façon dont il sera lancé, l'utilisateur peut faire
source script.sh
sh script.sh
./script.sh
etc.
Comment géré vous le code retour sachant que return ne peut être utilisé que dans un script appelé par la commande source, ou par une fonction, et que exit dans un script appelé avec source quitte le shell courant.

Habituellement, j'utilise l'ensemble de commandes suivant:
return 0 2>/dev/null || exit 0
Ca me satisfait, mais il existes sans doute d'autre méthodes...

A plus
A voir également:

3 réponses

jipicy Messages postés 41342 Statut Modérateur 4 896
 
Ben il me semble que tu as fait le tour du problème entre les fonctions, le source et l'appel à "exec" (bon celui-là tu ne l'avais pas mentionné, mais comme le résultat est le même qu'avec "source"...), et ta soluce, perso je ne vois pas trop que faire d'autre... désolé ;-((
1
asevere Messages postés 13521 Statut Webmaster 426
 
Alors personne n'as ce genre de problèmatique ? :'(
0
lami20j Messages postés 21644 Statut Modérateur, Contributeur sécurité 3 570
 
Salut,

le code de retour n'est pas capturer par le processus père?! En ce cas le shell
à part le cas où le processus père (le shell) et aussi fermé normalement le code de retour est capturer par shell dans $?

je me trompe ou je n'ai pas compris ta question?!
0