[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
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 900
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
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 900 > 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
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 900 > 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
40805
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