Golang、exec和back-ticks shell命令
我试图将os.exec()与如下命令一起使用:value=`something`;echo美元价值 value=`something`; echo $value 但是在后面的记号似乎干扰了字符串的命令 如果我用了什么东西,它就会起作用 我如何使用背面的记号?我必须找到另一种方法来编写命令吗Golang、exec和back-ticks shell命令,go,Go,我试图将os.exec()与如下命令一起使用:value=`something`;echo美元价值 value=`something`; echo $value 但是在后面的记号似乎干扰了字符串的命令 如果我用了什么东西,它就会起作用 我如何使用背面的记号?我必须找到另一种方法来编写命令吗 谢谢,Go以一种您无法使用shell的方式执行这些命令,因为它创建了一个新的进程。 因此,您应该创建一个新的shell进程,例如: package main import ( "os" "o
谢谢,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)
}
}
如果这不是你想要的,请告诉我 我发现我可以用$()来代替``但是嗯……实际上我的命令比这更复杂:nginx=$(ps aux | grep-v grep | grep nginx | wc-l);破折号=$(ps aux | grep-v grep | grep破折号| wc-l);如果[$nginx-gt 0-a$dash-gt 0];然后回音OK;else回波误差;fi
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)
}
}