Problème :
Rencontrer des difficultés pour interpoler une expression dans une commande dans un Makefile en raison de l'évaluation problèmes.
Explication :
Un Makefile utilise des règles d'évaluation différentes par rapport à un script shell. Dans un Makefile, le signe dollar ($) est utilisé pour l'expansion des variables, mais lorsqu'il est utilisé dans une commande, il peut ne pas être évalué comme prévu.
Solution :
Pour échapper au $ dans une commande Makefile et activer l'interpolation d'expression de type shell, utilisez un deuxième signe dollar ($$). Cela indique au Makefile de traiter le premier $ comme du texte littéral et de différer l'interpolation vers le shell.
Exemple :
Pour exécuter des tests dans un projet Go, mais ignorer le fournisseur tests, vous pouvez utiliser l'extrait Makefile suivant :
test: go test $$(go list ./... | grep -v /vendor/) .PHONY: test
Dans cet exemple, le $$(go list ./... | grep -v /vendor/) est entouré de doubles dollars pour garantir que l'expression est interpolée par le shell.
En échappant au signe dollar, le Makefile évalue correctement l'expression et fournit le résultat attendu.
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!