我试图从go运行以下命令。
sed -i' s | / home / output || g' /tmp/results.json
从文件/tmp/result.json中删除/ home / output。
如果我从终端运行它,它可以很好地工作。但是,我无法弄清楚为什么它不喜欢从执行官那里跑出来。
这是我的代码。
npm info eslint-config-airbnb peerDependencies
具体错误是:
package main
import (
"fmt"
"log"
"os"
"os/exec"
)
func main() {
cmd := exec.Command("sed", "-i", "'s|/octane/data||g'", "./results.json")
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
if err := cmd.Start(); err != nil {
log.Fatal(err)
}
if err := cmd.Wait(); err != nil {
log.Fatal(err)
}
}
造成这种意外行为的原因是什么?
答案 0 :(得分:5)
试试这个:
cmd := exec.Command("sed", "-i", "s|/octane/data||g", "./results.json")
错误引用问题。
单引号对于shell是必需的,但对于exec.Command调用则不是。