gpt4 book ai didi

go - 如何使用自定义环境变量 "go build -ldflags"

转载 作者:行者123 更新时间:2023-12-05 02:41:33 25 4
gpt4 key购买 nike

我想在程序启动时打印构建时间,例如:

package main

import "fmt"

var BuildTime string

func main() {
fmt.Println(BuildTime)
}

我尝试通过 set bt (date) 将环境变量设置为当前时间,确保 echo $bt 显示时间。

然后使用 go build -ldflags "-X main.BuildTime=$bt" 构建,但构建失败并显示了一些链接器的用法,例如:

err

我尝试了一些系统变量,比如 $USER/$PWD/$TERM,比如 go build -ldflags "-X main.BuildTime=$USER",一切正常,为什么不工作 $bt ?

我用的是 fish shell,但我也试过 bash,同样的问题。

最佳答案

问题是 date 有空格——而其他环境变量没有。

为了说明任何可能有空格的变量值,只需用单引号 ' 将构建参数括起来,如下所示:

# go build -ldflags "-X main.BuildTime=$bt"  # spaces in $bt value will lead to parse errors

go build -ldflags "-X 'main.BuildTime=$bt'"

注意:如果您用单引号 (') 括起来的值本身可能有一个单引号 - 那么该值应该是 properly escaped .

关于go - 如何使用自定义环境变量 "go build -ldflags",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68051479/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com