#1 Le 03/08/2011, à 19:14
- Hizoka
[resolu] equivalent à continue 2 pour return ?
Bonsoir,
Soit les fonctions :
fonction b { echo b1; return; echo b2; }
function a { echo a1; b; echo a2; }
a
=> a1
=> b1
=> a2
comment faire pour que la fonction a s’arrête également si la b s’arrête ?
on peut utiliser une variable en autre
fonction b { echo b1; stop=yes; return; echo b2; }
function a { echo a1; b; [[ $stop == yes ]] && return; echo a2; }
mais y a-t-il plus simple ?
Dernière modification par Hizoka (Le 04/08/2011, à 15:37)
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#2 Le 03/08/2011, à 21:07
- ehmicky
Re : [resolu] equivalent à continue 2 pour return ?
Salut,
Je crois que contrairement à break et continue, l'argument d'exit et de return ne permet de "remonter le stack" mais seulement d'envoyer un exit code, donc pas possible d'utiliser return comme continue. Mais avec l'exit code, ou envoyant un signal via kill et trap, tu dois pouvoir forcer la fonction du dessus à quitter si celle du dessous quitte aussi selon certaines circonstances :
b() { echo "b1"; return "$1" ; echo "b2"; }
a() { echo "a1"; b "$1" || return ; echo "a2"; }
a 1
echo -e "----\nAvec un nouvel argument\n----"
a 0
$ ./test.sh
a1
b1
----
Avec un nouvel argument
----
a1
b1
a2
(bugue si "$1" n'est pas un entier positif < 2^63)
Je sais pas si j'ai répondu à côté
Dernière modification par ehmicky (Le 03/08/2011, à 21:13)
Stego++, bibliothèque libre de stéganographie (avec cryptographie), à venir !
Besoin de votre aide :
Stats sur les compilateurs C++ les plus utilisés
Comment utiliser les archetypes C++ ?
Hors ligne
#3 Le 03/08/2011, à 21:19
- Hizoka
Re : [resolu] equivalent à continue 2 pour return ?
pas con, ca simplifie un peu ma version mais l'idée est la même...
merci à toi
j'attends un peu avant de mettre resolu histoire de voir si quelqu'un a une autre idee
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne