[Unix] Probleme avec

Résolu/Fermé
Trezeg Messages postés 73 Date d'inscription mercredi 20 décembre 2006 Statut Membre Dernière intervention 24 novembre 2010 - 8 févr. 2007 à 17:04
Trezeg Messages postés 73 Date d'inscription mercredi 20 décembre 2006 Statut Membre Dernière intervention 24 novembre 2010 - 16 févr. 2007 à 09:57
Bonjour,

J'ai créé un shell qui doit obligatoirement renvoyer un code de sortie (0 ou 1). Il s'execute parfaitement mais le problème est qu'au moment du exit 0, il l'interprète comme un logout et je suis ejecté du système...

Quelqu'un pourrait-il éclairer ma lanterne ?

Merci

Trez
Configuration: Sun OS 5.9

2 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
8 févr. 2007 à 19:20
Salut,

Comment exécutes-tu ton script ?
Emploies-tu la commande "exec" ?
Ou encore "sources-tu" ton script ("source ton_script" ou ". ton_script") ?
1
Hello jipicy,

J'execute mon script de la manière suivante : ". mon_script.sh"
De cette facon, il prend en compte toutes les variables d'environnement que j'ai stocké dans un fichier (appelé lui meme par mon ".profile").

Cdlt,

Trez
0
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 > Trezeg
9 févr. 2007 à 13:58
Re-

J'execute mon script de la manière suivante : ". mon_script.sh"
Donc tu "source" ton script et c'est pour ça qu'il t'éjecte lors de l'appel de "exit 0".

Je pense que tu devrais dans ce cas là utiliser des fonctions, mais je ne suis pas sûr que ça résolve ton problème...

Je ne suis pas chez moi là, mais dès que je rentre je jetterai un oeil pour voir si il y a moyen de contourner cette déconnexion.

;-))
0
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 > Trezeg
9 févr. 2007 à 17:16
Bon effectivement, je pense que tu devrais passer par des fonctions et l'emploi de "return" à la place d'"exit"...
#! /bin/bash

ma_fonction ()
{
if ...
then ...
return 0
else ...
return 1
fi
}

ma_fonction
code_retour=$?
echo $code_retour
...
Et point d'"exit" non plus en fin de script, sous peine de te voir à nouveau éjecter du shell.

;-))
0
Trezeg > jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020
12 févr. 2007 à 10:56
Bonjour jipicy,

Et n'est-il pas possible de mettre un return 0 ou 1 directement à la fin de mes shells ? Je demande cela car j'ai remarqué que meme sans exit, je parvenais à sortir du shell une fois que celui-ci se terminait. Par contre je ne pouvais pas gerer de code de sortie.

Cdlt,

Trez
0
Trezeg Messages postés 73 Date d'inscription mercredi 20 décembre 2006 Statut Membre Dernière intervention 24 novembre 2010 2
16 févr. 2007 à 09:57
Hello,
J'ai pu faire le test en mettant directement le return 0 ou 1 à la sortie de mes shells. Et pour le moment ca marche ;)

Merci pour tout

Trez
0