如果我编译这个程序
package main
import (
"fmt"
"os"
)
var version = os.Getenv("VERSION")
func main() {
fmt.Println(version)
}
运行时它会打印环境变量
VERSION="0.123" ./example
> 0.123
有没有一种方法可以将环境变量编译到二进制文件中,例如:
VERSION="0.123" go build example.go
当我运行时,得到了相同的输出
./example
go build -ldflags "-X main.Version %VERSION%"
。 - iczalink: warning: option -X main.Version 0.2 may not work in future releases; use -X main.Version=0.2
。此外,我想指出,当环境变量未传递时,您可以设置默认值,在example.go
中设置var Version = 0.1
。 - mozeyvar test string
的简单行-ldflags“ -X main.test = Hello”
也没有任何作用。当我在Windows上运行我的程序作为.exe时,我还将test
变量记录到.txt文件中以查看它是否有效,但是test
变量只是一个空字符串。 - user9591909