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
Mary-Kate OlsenOriginal
2024-12-20 19:32:11824Durchsuche

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/)

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/)

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!

Stellungnahme:
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