Heim > Backend-Entwicklung > Golang > Wie kann ich der Dollarzeichen-Interpolation in Makefile-Befehlen entgehen?

Wie kann ich der Dollarzeichen-Interpolation in Makefile-Befehlen entgehen?

Mary-Kate Olsen
Freigeben: 2024-12-16 10:11:11
Original
1002 Leute haben es durchsucht

How Can I Escape Dollar Sign Interpolation in Makefile Commands?

Ausbruch der Ausdrucksinterpolation in einem Makefile-Befehl

Problem:

Es treten Schwierigkeiten bei der Interpolation eines Ausdrucks innerhalb eines Befehls in einem Makefile auf Aufgrund der Bewertung Probleme.

Erklärung:

Ein Makefile verwendet andere Auswertungsregeln als ein Shell-Skript. In einem Makefile wird das Dollarzeichen ($) für die Variablenerweiterung verwendet, aber wenn es innerhalb eines Befehls verwendet wird, wird es möglicherweise nicht wie beabsichtigt ausgewertet.

Lösung:

Um das $ in einem Makefile-Befehl zu maskieren und eine Shell-ähnliche Ausdrucksinterpolation zu ermöglichen, verwenden Sie ein zweites Dollarzeichen ($$). Dies weist das Makefile an, das erste $ als wörtlichen Text zu behandeln und die Interpolation an die Shell zu verschieben.

Beispiel:

Um Tests in einem Go-Projekt auszuführen, aber den Anbieter zu überspringen Tests können Sie das folgende Makefile-Snippet verwenden:

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

.PHONY: test
Nach dem Login kopieren

In diesem Beispiel ist die $$(go list ./... | grep -v /vendor/) wird in doppelte Dollars eingeschlossen, um sicherzustellen, dass der Ausdruck von der Shell interpoliert wird.

Durch das Maskieren des Dollarzeichens wertet das Makefile den Ausdruck korrekt aus und liefert die erwartete Ausgabe.

Das obige ist der detaillierte Inhalt vonWie kann ich der Dollarzeichen-Interpolation in Makefile-Befehlen entgehen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage