Maison >développement back-end >Golang >Pourquoi mes expressions Makefile ne sont-elles pas évaluées correctement ?
É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!