Dalam artikel ini, editor PHP Baicao akan memperkenalkan anda kepada dua arahan yang biasa digunakan dalam Makefile: `pergi versi` dan `baca`. Semasa menulis Makefile, kedua-dua arahan ini boleh membantu kami mendapatkan dan memaparkan maklumat versi bahasa Go, serta mendapatkan data daripada input pengguna. Dengan memahami dan menggunakan kedua-dua arahan ini secara fleksibel, kami boleh mengurus dan membina projek Go kami dengan lebih cekap. Mari kita ketahui lebih lanjut mengenainya bersama-sama!
Saya ingin mengekstrak dan mengesahkan versi go dalam Makefile.
Ini berfungsi dalam cangkerang:
% go version | read _ _ version _ && echo "A $version Z" A go1.21.1 Z
Tetapi ia tidak berfungsi dalam Makefile
check-golang-version: go version | read _ _ version _ && echo "A $$version Z"
Hasil:
% make check-golang-version go version | read _ _ version _ && echo "A $version Z" A Z
Akhirnya saya nak cek macam ni:
check-golang-version: go version | read _ _ version _ && test "$$version" = "go1.21.1" || $(error "wrong go version: $$version")
Secara lalai, make
使用 /bin/sh
bertindak sebagai cangkerang (lihat 5.3.2 Memilih cangkerang).
Dan kemungkinan besar apabila anda melaksanakan arahan dalam shell, shell zsh
。 zsh
piping berkelakuan berbeza daripada kebanyakan shell lain. Lihat https://riptutorial.com/zsh/example/19869/pipes-and-subshells untuk contoh.
Saya syorkan menggunakan go env GOVERSION
untuk mendapatkan versi go dan tetapkannya kepada pembolehubah Makefile:
version = $(shell go env GOVERSION) check-golang-version: ifneq ($(version), go1.21.1) $(error wrong go version: $(version)) endif
Atas ialah kandungan terperinci Makefile arahan `pergi versi` dan `baca`. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!