Précédent   Forum des professionnels en informatique > Systèmes > Autres systèmes > Unix
Unix Forum d'entraide sur les systèmes Unix et dérivés (*BSD, AIX, etc.). Avant de poster ->F.A.Q BSD F.A.Q. Aix
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 04/02/2011, 10h40   #1
Membre du Club
 
Inscription : octobre 2007
Messages : 174
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 174
Points : 53
Points : 53
Par défaut trap 'fonction(X)' RETURN

bonjour à tous.
noyaux 2.6.36
SHELL:KSH
voila, dans pas mal,de cours de Unix, et de forums, visiblement, intercepter le signal RETURN d'une fonction, avec TRAP est admise.
effectivement, exemple mon shema de fonction ci-dessous est la suivante:
du type:
Code :
1
2
3
4
5
6
7
8
function estceJour { 
hour=$(date +%H)
if [  mon test  ] ; then 
return 1
else
return 0
fi
}
mais voila, j'ai un warning, qui me dit systematiquement :" trap RETURN : mauvais piege."
selon vous est ce que c'est correcte de traper le signal RETURN ?
est ce mauvais de scripter ainsi?
c'est elegant de savoir quune fonction est terminer totalement.
merci a tous coup de main et directive.
merci de vos analyses du trap avec return..
dans cette attente.
amateur_will est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2011, 11h39   #2
Membre habitué
 
Développeur informatique
Inscription : juillet 2002
Messages : 96
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : juillet 2002
Messages : 96
Points : 120
Points : 120
Bonjour,

Si tu veux récupérer le code de retour d'une commande dans ton shell
tu devrais utiliser la variable : $?
il me semple sans certitudes que trap sert a intercepter des signaux et non pas les code retours

Cordialement.
__________________
Je connais des gens qui ne sont pas aware, il ne sont pas qu courant. il ne sont pas a l'attention de savoir qu'ils existent.
"J-C Van dam"
Lharuun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2011, 21h55   #3
Membre éclairé
 
Homme Lilian Herault
Architecte technique
Inscription : juin 2010
Messages : 215
Détails du profil
Informations personnelles :
Nom : Homme Lilian Herault
Âge : 31
Localisation : France

Informations professionnelles :
Activité : Architecte technique
Secteur : Industrie

Informations forums :
Inscription : juin 2010
Messages : 215
Points : 335
Points : 335
Bonjour,

L' error management est élégant, mais les méthodes doivent l'être aussi ; tenter de le récupérer en trappant sur RETURN, ce n'est pas vraiment sexy.
Dans la pratique, comme a dit Lharuun, le retour d'une fonction est testé avec la variable $?.

TRAP est plutôt événementiel, c'est comme si tu essayais de récupérer le retour d'une méthode C++ avec catch. Ce n'est pas impossible, mais ce n'est pas son rôle.


Lilian.
lilian_h est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2011, 11h06   #4
Membre du Club
 
Inscription : octobre 2007
Messages : 174
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 174
Points : 53
Points : 53
Bonjour à vous
merci à lilian_h, et merci à Lhaurunn de vos reponses.
effectivement, frequement si ce n'est j'ai toujours employé a recupérer mes codes retour par $? de mes fonctions. pour une ecriture modulaire des scripts
vous avez raison, apparement c'est pas tres recommander a traper les RETURN voir meme deconseiller.
si ce n'est tu a raison LHARRUN apres mes recherches, vaut mieux traper les signaux d'une mainscript que d'une foncion.
merci des vos analyses.
je ferme cette discution j'ai une autre question sur FUNCNAME.
amateur_will est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2011, 22h32   #5
Membre Expert
 
Avatar de jlliagre
 
Inscription : juin 2007
Messages : 964
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : juin 2007
Messages : 964
Points : 1 362
Points : 1 362
Citation:
Envoyé par amateur_will Voir le message
voila, dans pas mal,de cours de Unix, et de forums, visiblement, intercepter le signal RETURN d'une fonction, avec TRAP est admise.
Le return d'une fonction n'a pas de rapport avec un signal est n'est donc pas "trappable" d'après le standard POSIX. Il existe une extension spécifique à bash qui permet d'intercepter le retour d'une fonction, mais elle n'est pas implémentée par les autres shells, en particulier par ksh que tu utilises.
__________________
ɹǝsn *sıɹɐlos*
jlliagre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2011, 10h56   #6
Membre du Club
 
Inscription : octobre 2007
Messages : 174
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 174
Points : 53
Points : 53
bonjour,

merci pour cette information complementaire -->de jlliagre
par contre j'ai ouvert une autre question sur FUNCNAME
pourrais tu me lire, et me donner ton avis sur la façon de parametrer
cette variable!
j'en dis plus sur le sujet ouvert
sincere salutation et merci
amateur_will est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2011, 22h52   #7
Membre Expert
 
Avatar de jlliagre
 
Inscription : juin 2007
Messages : 964
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : juin 2007
Messages : 964
Points : 1 362
Points : 1 362
Je ne vois pas d'autre question dans ce forum. Si tu es sous Unix, poste ta question ici.
__________________
ɹǝsn *sıɹɐlos*
jlliagre est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h14.


 
 
 
 
Partenaires

Hébergement Web