(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/>