In diesem Artikel stellt Ihnen der PHP-Editor Baicao zwei häufig verwendete Befehle in Makefile vor: „go version“ und „read“. Beim Schreiben von Makefile können uns diese beiden Befehle dabei helfen, die Versionsinformationen der Go-Sprache abzurufen und anzuzeigen sowie Daten aus Benutzereingaben abzurufen. Durch das Verständnis und die flexible Verwendung dieser beiden Befehle können wir unsere Go-Projekte effizienter verwalten und erstellen. Werfen wir einen genaueren Blick unten!
Ich möchte die Go-Version im Makefile extrahieren und überprüfen.
Das funktioniert in der Shell:
% go version | read _ _ version _ && echo "A $version Z" A go1.21.1 Z
Aber es funktioniert nicht in Makefile
check-golang-version: go version | read _ _ version _ && echo "A $$version Z"
Ergebnis:
% make check-golang-version go version | read _ _ version _ && echo "A $version Z" A Z
Letztendlich möchte ich einen Scheck wie diesen:
check-golang-version: go version | read _ _ version _ && test "$$version" = "go1.21.1" || $(error "wrong go version: $$version")
Standardmäßig fungiert make
使用 /bin/sh
als Shell (siehe 5.3.2 Shell auswählen).
Und wenn Sie einen Befehl in einer Shell ausführen, verhält sich die Shell höchstwahrscheinlich anders als die meisten anderen Shells. Ein Beispiel finden Sie unter zsh
。 zsh
https://riptutorial.com/zsh/example/19869/pipes-and-subshells.
zu verwenden, um die Version von go abzurufen und sie einer Makefile-Variablen zuzuweisen: go env GOVERSION
version = $(shell go env GOVERSION) check-golang-version: ifneq ($(version), go1.21.1) $(error wrong go version: $(version)) endif
Das obige ist der detaillierte Inhalt vonMakefile-Befehle „go version' und „read'.. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!