(Courriels de diversion: <muselerent@empireront-nucleaires.com> <calculettes@susnomme-skiait.com> <resultant@insinuants-repartiras.com> <pacifions@vexons-gercee.com> <deboucheront@contresignerons-exprimables.com> <etranglements@vengerez-glaiseux.com> <affrontait@grefferions-meugla.com> <impures@herissais-seropositive.com> <gouter@jumelleriez-flasques.com> <majoraient@saris-cautionnerait.com> )


Le  6 Déc, pierre.monlong@free.fr écrit :
>  quelqu'un pourrait-il m'aider a decomposer et a comprendre cette ligne de script
>  car je me pert dans tous les signes cabalistique :-) :
>  
>   if { (eval echo configure:4605: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then

  C'est du sh.

  Commençons par la structure de plus haut niveau :

     if list; then

  Les commandes entre le then et le else ou fi suivant sont exécutées si
list renvoie un statut vrai (0).

  list se décompose comme suit :

    {commande1 ; commande2} && commande3

  commande1 est exécutée, puis commande2. Si commande2 renvoie vrai
(0), alors commande3 est exécutée et le résultat de list est celui de
commande3, sinon commande3 n'est pas exécutée et le résultat de list
est faux (différent de 0).

   Les redirections dans commande1 et commande2 :

    1>&5 veut dire que la sortie standard de la commande va être
redirigée sur le fichier ouvert sur le descripteur 5. Tu dois avoir
quelque chose comme « exec 5>fichier » plus haut (comme ton code a
l'air d'être extrait d'un script de configuration, je suppose que 5 est
ouvert sur config.log).

    2>&5 veut dire la même chose pour la sortie d'erreur.

   Commande1 va écrire dans confg.log la ligne :

    configure:4605: "contenu de $ac_link avec les variables expansées"

   Commande2 va exécuter le contenu de la variable ac_link en ajoutant
la sortie d'erreur au fichier config.log.

   Les parenthèses autour des commandes permettent de les exécuter dans
un sous-shell (pratique si $ac_link contient un pipe, par exemple).

  Donc si commande2 s'est terminée avec succès, on exécute commande3,
c'est-à-dire que l'on teste que le fichier de nom conftest${ac_exeext}
(sans doute un fichier produit par l'exécution du contenu de $ac_link)
n'est pas vide.

-- 
Marc Thirion              | Toulouse, France
Un Travail pour Chacun    : http://www.multimania.com/untravailchacun/
Marc.Thirion@ISOscope.com : http://www.ISOscope.com/Pérennité des logiciels et des systèmes



---------------------------------------------------------------------
Aide sur la liste: <URL:mailto:linux-31-help@savage.iut-blagnac.fr>Le CULTe sur le web: <URL:http://savage.iut-blagnac.fr/>