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]>
>
>

Répondre à