Maison >développement back-end >Golang >Pourquoi mes expressions Makefile ne sont-elles pas évaluées correctement ?

Pourquoi mes expressions Makefile ne sont-elles pas évaluées correctement ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-20 19:32:11826parcourir

Why Aren't My Makefile Expressions Evaluating Correctly?

Évaluation des expressions dans les commandes Makefile

Les Makefiles sont des outils puissants pour automatiser les processus de construction. Cependant, lors de l'écriture de recettes Makefile, il est important de comprendre comment les expressions sont évaluées.

Dans une section de recettes Makefile, le signe dollar ($) est utilisé pour interpoler les variables. Pour interpoler une expression qui implique une commande, vous devez échapper au $ à l'aide d'un deuxième $:

Problème : Utiliser une expression dans une commande Makefile, mais l'expression n'est pas en cours évalué.

Commande :

test:
    go test $(go list ./... | grep -v /vendor/)

Problème : L'expression est placée entre parenthèses, ce qui empêche son développement.

Solution : Échapper au signe dollar en utilisant un autre signe dollar ($):

test:
    go test $$(go list ./... | grep -v /vendor/)

Maintenant, le Makefile évaluera correctement l'expression et exécutera la commande go test avec les fichiers de test filtrés.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn