aj3*_*423 3 environment-variables go
我想在程序启动时打印构建时间,例如:
package main
import "fmt"
var BuildTime string
func main() {
fmt.Println(BuildTime)
}
Run Code Online (Sandbox Code Playgroud)
我尝试将环境变量设置为当前时间set bt (date),确保echo $bt显示时间。
然后使用 进行构建go build -ldflags "-X main.BuildTime=$bt",但它无法构建并显示某些链接器的用法,例如:
我尝试了一些系统变量,例如 $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'"
Run Code Online (Sandbox Code Playgroud)
注意:如果用单引号 () 括起来的值'本身可能有一个单引号 - 那么该值应该被正确转义。
| 归档时间: |
|
| 查看次数: |
3423 次 |
| 最近记录: |