小编use*_*007的帖子

将ENV VAR传递给exec.Command?

我正在为一个流行的命令行工具(ansible-playbook)编写一个go包装器,我需要通过exec.Command调用传递一个参数.bash等价物将是:

MY_VAR=some_value ansible-playbook -i custom-inventory playbook.yml
Run Code Online (Sandbox Code Playgroud)

以前我只是使用os.Setenv导出MY_VAR,但这会导致并行执行剧本的问题.所以我想在命令前面传递var,这样每个调用都有它自己的var值.

我不确定如何使用exec.Command执行此操作,因为该函数的第一个参数是"command".有小费吗?

编辑:我已尝试使用Cmd结构的Env字段,但它会覆盖所有环境变量.我有大量的配置集,我只想覆盖这个特定的环境变量.这不可能吗?

go

20
推荐指数
1
解决办法
7585
查看次数

Ansible任务超时最大长度

我shell: docker ps ...在我的一些剧本中执行任务.这通常有效但有时docker守护进程挂起并且docker ps不会返回~2小时.

如果docker ps不返回,如何在合理的时间内将Ansible配置为超时?

ansible docker

4
推荐指数
2
解决办法
8562
查看次数

在golang中切换基于enum/iota的类型

我定义了一个枚举和结构类型,如下所示:

type NodeType int
const (
        City NodeType = iota
        Town
        Village
)

type AreaNode struct {
        Location Coord2D
        Type NodeType
}
Run Code Online (Sandbox Code Playgroud)

现在我正在迭代一系列节点,每个节点都有一个类型

if node, ok := area.Nodes[coord]; ok {
    switch node.Type {
        case node.Type == City:
            // do something for City
        case node.Type == Town:
            // do something for Town
        case node.Type == Outpost:
            // do something for Outpost
    }
}
Run Code Online (Sandbox Code Playgroud)

但是我收到一个错误:二进制表达式中的不兼容类型.

我该如何解决这个问题?

go

1
推荐指数
1
解决办法
4324
查看次数

标签 统计

go ×2

ansible ×1

docker ×1