Salut Merci a tous pour vos reponses et votre aide :D
Je pense que ca me sera tres utile, tres bientot Cordialement Hugues Le 17 juillet 2012 11:57, Daniel Huhardeaux <[email protected]> a écrit : > Bonjour > > Le 17/07/2012 11:04, Hugues MORIN a écrit : > > [...] > > > >> 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. >> > > Non > > > >> 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. >> > > Oui, mais le renvoi "faux" me dérange car expr peut être une commande, > c'est donc la sortie de cette commande qui sera analysée. Il faut voir cela > comme "si expr1 est évaluée/exécutée et que le résultat est vrai/sans > erreur alors expr2 est évaluée/exécutée" > > > >> 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. >> > > Même pas: si expr1 est faux expr2 n'est même pas évaluée/exécutée. > > >> Est ce bien cela? >> > > Maintenant oui ;-) > > >> C'est vrai que dans le cas ou "expr1" ou "expr2" realise une action, de >> connaitre cet difference peut etre tres utile. >> > > Tout à fait. > > >> 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" <[email protected] >> <mailto:[email protected]>> >> À: >> debian-user-french@lists.**debian.org<[email protected]> >> >> <mailto:debian-user-french@**lists.debian.org<[email protected]> >> > >> >> 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<http://wiki.debian.org/fr/FrenchLists> >> >> Pour vous DESABONNER, envoyez un message avec comme objet >> "unsubscribe" >> vers >> debian-user-french-REQUEST@**lists.debian.org<[email protected]> >> >> <mailto:debian-user-french-**[email protected]<[email protected]> >> > >> >> En cas de soucis, contactez EN ANGLAIS [email protected] >> <mailto:listmaster@lists.**debian.org <[email protected]>> >> >> Archive: >> http://lists.debian.org/**[email protected]<http://lists.debian.org/[email protected]> >> >> -- >> Lisez la FAQ de la liste avant de poser une question : >> >> http://wiki.debian.org/fr/**FrenchLists<http://wiki.debian.org/fr/FrenchLists> >> >> Pour vous DESABONNER, envoyez un message avec comme objet >> "unsubscribe" >> vers >> debian-user-french-REQUEST@**lists.debian.org<[email protected]> >> >> <mailto:debian-user-french-**[email protected]<[email protected]> >> > >> >> En cas de soucis, contactez EN ANGLAIS [email protected] >> <mailto:listmaster@lists.**debian.org <[email protected]>> >> Archive: >> http://lists.debian.org/**1300833691.35769510.** >> 1342442227243.JavaMail.root@**zimbra33-e6.priv.proxad.net<http://lists.debian.org/1300833691.35769510.1342442227243.javamail.r...@zimbra33-e6.priv.proxad.net> >> >> >> Le 16 juillet 2012 14:37, <[email protected] <mailto:[email protected]>> >> a écrit : >> > > -- > Lisez la FAQ de la liste avant de poser une question : > http://wiki.debian.org/fr/**FrenchLists<http://wiki.debian.org/fr/FrenchLists> > > Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe" > vers > debian-user-french-REQUEST@**lists.debian.org<[email protected]> > En cas de soucis, contactez EN ANGLAIS [email protected] > Archive: > http://lists.debian.org/**[email protected]<http://lists.debian.org/[email protected]> > >

