Heim > Backend-Entwicklung > Golang > Warum werden meine Makefile-Ausdrücke nicht korrekt ausgewertet?

Warum werden meine Makefile-Ausdrücke nicht korrekt ausgewertet?

Mary-Kate Olsen
Freigeben: 2024-12-20 19:32:11
Original
824 Leute haben es durchsucht

Why Aren't My Makefile Expressions Evaluating Correctly?

Ausdrücke in Makefile-Befehlen auswerten

Makefiles sind leistungsstarke Werkzeuge zur Automatisierung von Build-Prozessen. Beim Schreiben von Makefile-Rezepten ist es jedoch wichtig zu verstehen, wie Ausdrücke ausgewertet werden.

In einem Makefile-Rezeptabschnitt wird das Dollarzeichen ($) zum Interpolieren von Variablen verwendet. Um einen Ausdruck zu interpolieren, der einen Befehl beinhaltet, müssen Sie das $ mit einem zweiten $ maskieren:

Problem: Sie verwenden einen Ausdruck in einem Makefile-Befehl, aber der Ausdruck wird nicht verwendet ausgewertet.

Befehl:

test:
    go test $(go list ./... | grep -v /vendor/)
Nach dem Login kopieren

Problem: Der Ausdruck ist in Klammern eingeschlossen, was verhindert, dass er erweitert wird.

Lösung: Umgehen Sie das Dollarzeichen mit einem anderen Dollarzeichen ($):

test:
    go test $$(go list ./... | grep -v /vendor/)
Nach dem Login kopieren

Jetzt wertet das Makefile den Ausdruck korrekt aus und führt den Befehl go test mit den gefilterten Testdateien aus.

Das obige ist der detaillierte Inhalt vonWarum werden meine Makefile-Ausdrücke nicht korrekt ausgewertet?. 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