Bonjour
Le 17/07/2012 11:04, Hugues MORIN a écrit :
[...]Non
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.
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"
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.
Même pas: si expr1 est faux expr2 n'est même pas é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.
Est ce bien cela?
Maintenant oui ;-)Tout à fait.
C'est vrai que dans le cas ou "expr1" ou "expr2" realise une action, de connaitre cet difference peut etre tres utile.
<mailto:no-spam@tootai.net>>
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-spam@tootai.net
À: debian-user-french@lists.debian.org
<mailto:debian-user-french@lists.debian.org><mailto:debian-user-french-REQUEST@lists.debian.org> <mailto:listmaster@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-REQUEST@lists.debian.org<mailto:debian-user-french-REQUEST@lists.debian.org> <mailto:listmaster@lists.debian.org>
Archive: [🔎] 5003BFC2.6000707@tootai.net" target="_blank">http://lists.debian.org/[🔎] 5003BFC2.6000707@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-REQUEST@lists.debian.org
Archive:
[🔎] 1300833691.35769510.1342442227243.JavaMail.root@zimbra33-e6.priv.proxad.net" target="_blank">http://lists.debian.org/1300833691.35769510.1342442227243.JavaMail.root@zimbra33-e6.priv.proxad.net
Le 16 juillet 2012 14:37, <seb.marque@free.fr <mailto:seb.marque@free.fr>> a écrit :
Archive: [🔎] 50053719.3020403@tootai.net" target="_blank">http://lists.debian.org/[🔎] 50053719.3020403@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-REQUEST@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmaster@lists.debian.org