Golang,exec和back ticks shell命令

时间:2016-09-17 05:58:39

标签: go

我正在尝试将os.exec(https://nathanleclaire.com/blog/2014/12/29/shelled-out-commands-in-golang/)与以下命令一起使用:

value=`something`; echo $value

但是看起来后面的嘀嗒声正在弄乱弦乐的命令。我做了.Split。

如果我使用

something
,则

如何使用后蜱?我是否必须找到另一种写命令的方法?

由于

1 个答案:

答案 0 :(得分:1)

Go执行这些命令是一种不能使用shell的方法,因为它会创建一个新进程。 因此,您应该创建一个新的shell进程,例如:

package main

import (
    "os"
    "os/exec"
)

func main() {
    cmd := exec.Command("sh", "-c", "value=`ls`; echo $value")
    cmd.Stdout = os.Stdout
    err := cmd.Run()
    if err != nil {
        panic(err)
    }

}

让我知道它不是你想要的!