Shell script [exit/return/source]

Fermé
asevere Messages postés 13084 Date d'inscription lundi 28 janvier 2002 Statut Webmaster Dernière intervention 3 février 2022 - 2 sept. 2008 à 14:31
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 3 sept. 2008 à 10:47
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

3 réponses

jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
3 sept. 2008 à 09:56
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 13084 Date d'inscription lundi 28 janvier 2002 Statut Webmaster Dernière intervention 3 février 2022 426
3 sept. 2008 à 09:41
Alors personne n'as ce genre de problèmatique ? :'(
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
3 sept. 2008 à 10:47
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