Heim >Backend-Entwicklung >Golang >Warum werden meine Makefile-Ausdrücke nicht korrekt ausgewertet?
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!