我的问题是go run someprogram.go usecomand change_variable=value这可能吗,我该怎么做?import ( "github.com/spf13/cobra" "fmt" "math/rand" "time" "github.com/brocaar/lorawan" MQTT "github.com/eclipse/paho.mqtt.golang" lds "github.com/iegomez/loraserver-device-sim")func mainCmd() *cobra.Command { return &cobra.Command{ Use: "sensor", RunE: func(cmd *cobra.Command,args []string) error { ip := "tcp://127.0.0.1:1883" cmd.Println("O IP da gateway e o port são:",ip) //Connect to the broker opts :=MQTT.NewClientOptions() opts.AddBroker(ip) 看到这是我的go文件包含的内容,我想在命令行中构建go文件并执行并更改ip变量
2 回答
吃鸡游戏
TA贡献1829条经验 获得超7个赞
您可以在构建期间使用更改变量go run -ldflags="-X..
。标志。
在此示例中,将ip更改为代码开头的变量。
var IP = "<default_ip>"
然后,您可以在其余代码中引用该变量。然后使用
go run -ldflags="-X <package>.IP <new_ip_address>" program.go
因此,如果您的软件包是main
,程序名称是main.go
,并且新IP是0.0.0.0
,则可以运行
go run -ldflags="-X main.IP 0.0.0.0" program.go
我在测试中使用了这个(带有=
符号,因为它出错了)
go run -ldflags="-X main.who=0.0.0.0" program.go
您可以在此处阅读此文章以获取更多信息
- 2 回答
- 0 关注
- 286 浏览
添加回答
举报
0/150
提交
取消