2016-09-17 85 views
-2

我试图用以下命令使用os.exec(https://nathanleclaire.com/blog/2014/12/29/shelled-out-commands-in-golang/):Golang,exec和背部蜱shell命令

value=`something`; echo $value

但它出现在反引号与strings.Split我的命令被搞乱做。

如果我使用

something
它的工作原理

我如何使用反勾?我是否需要找出另一种方式来编写我的命令?

感谢

+0

我发现我可以做$()而不是''但是哼哼......其实我的命令比这更复杂: '''nginx = $(ps aux | grep -v grep | grep nginx | wc -l); dash = $(ps aux | grep -v grep | grep Dash | wc -l);如果[$ nginx -gt 0 -a $ dash -gt 0];然后回显OK;其他回声错误; fi''' –

回答

1

去执行这些命令,你不能使用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) 
    } 

} 

让我知道,如果你想它不是!