Salut

Seb, merci pour tes remarques. :D

Moi aussi (malgre que ce soit moi qui l'est ecrit), ca me piquait les yeux
;-)
Au prochain script, j'appliquerai tes conseils.

Par contre, j'ai un peu de mal a comprendre la subtilite sur "[ expr1 ] &&
[ expr2]" et "[ expr1 -a expr2 ]"

Daniel: "Ce n'est pas la même chose. Le premier exemple dit "expr2 est
réalisée si expr1 est vrai". Le second exemple dit "si expr1 ET expr2 sont
vrais"

Seb:"action2 n'est entreprise que si action1 se termine correctement, mais
ce sont des actions et il peut être dommageable d'exécuter action2 si
action1 ne se passe pas bien."

Je pensais que ces 2 syntaxes etaient equivalentes.

Si j'ai bien compris vos propos alors dans le cas de la 1er syntaxe, [
expr1 ] est evalue, si le resultat est "faux" alors le test "[ expr1 ] && [
expr2]" est stoppe et renvoi "faux" comme resultat, et cela sans que  [
expr2 ] est ete evalue.

Dans le cas de la 2eme syntaxe,  [ expr1 ] est evalue,  [ expr2 ] est
evalue, et ensuite le test "[ expr1 -a expr2 ]" est evalue pour donne un
resultat.

Est ce bien cela?

C'est vrai que dans le cas ou "expr1" ou "expr2" realise une action, de
connaitre cet difference peut etre tres utile.



Cordialement
Hugues




Le 16 juillet 2012 14:37, <seb.mar...@free.fr> a écrit :

> C'est incontestable :)
>
> mais j'avoue préférer:
> action1 && action2
>
> et
>
> [ expr1 -a expr2 ]
> ou mieux
> test expr1 -a expr2
>
> action2 n'est entreprise que si action1 se termine correctement, mais ce
> sont des actions et il peut être dommageable d'exécuter action2 si action1
> ne se passe pas bien.
>
> En revanche pour un test, surtout complexe, je préfère n'utiliser qu'une
> seule instance de test (ou [). Les tests n'étant qu'arithmétiques il n'y a
> pas de "danger" à évaluer expr2 si expr1 est faux. Ça a l'avantage de
> lancer un seul processus au lieu de deux (ou plus) et je perçois l'avantage
> comme celui d'un (joli) "grep foo bar" par rapport à un (horrible) "cat bar
> | grep foo" :).
>
> D'ailleurs, je n'en ai pas la moindre idée mais ça ne m'étonnerait pas que
> [ évalue un peu intelligemment et donc se passe d'évaluations inutiles
> (faudrait zieuter le code source, le man n'en parle pas)
>
> Cordialement
> seb
>
> ----- Mail original -----
> De: "Daniel Huhardeaux" <no-s...@tootai.net>
> À: debian-user-french@lists.debian.org
> Envoyé: Lundi 16 Juillet 2012 09:16:18
> Objet: Re: Erreur "cp: opérande du fichier cible manquant" dans script
> shell [debutant]
>
> Bonjour
>
> Le 16/07/2012 08:35, Sébastien MARQUE a écrit :
> > Bonjour,
> >
> > oui, si ça me piquait les yeux c'est surtout parce que c'était
> > difficile à lire (majuscules, pas d'espace, signes cabalistiques
> > toussa toussa) :), après ce sont des goûts personnels qui peuvent très
> > bien ne pas être les plus judicieux:
> >
> > * je trouve les tests
> > "[ expr1 ] && [ expr2]"
> > moins élégants que
> > "[ expr1 -a expr2 ]"
>
> Ce n'est pas la même chose. Le premier exemple dit "expr2 est réalisée
> si expr1 est vrai". Le second exemple dit "si expr1 ET expr2 sont vrais"
>
> --
> Daniel
>
> --
> Lisez la FAQ de la liste avant de poser une question :
> http://wiki.debian.org/fr/FrenchLists
>
> Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
> vers debian-user-french-requ...@lists.debian.org
> En cas de soucis, contactez EN ANGLAIS listmas...@lists.debian.org
> Archive: http://lists.debian.org/5003bfc2.6000...@tootai.net
>
> --
> Lisez la FAQ de la liste avant de poser une question :
> http://wiki.debian.org/fr/FrenchLists
>
> Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
> vers debian-user-french-requ...@lists.debian.org
> En cas de soucis, contactez EN ANGLAIS listmas...@lists.debian.org
> Archive:
> http://lists.debian.org/1300833691.35769510.1342442227243.javamail.r...@zimbra33-e6.priv.proxad.net
>
>

Répondre à