Maison >développement back-end >Golang >Comment puis-je échapper à l'interpolation du signe dollar dans les commandes Makefile ?

Comment puis-je échapper à l'interpolation du signe dollar dans les commandes Makefile ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-16 10:11:111004parcourir

How Can I Escape Dollar Sign Interpolation in Makefile Commands?

Échapper à l'interpolation d'une expression dans une commande Makefile

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!

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