在我的项目中,我需要动态编写一些go代码并需要测试代码是否有效。所以需要调用“go build”命令使用“os.exec”函数。当我在像“/data/test/mycode.go”这样的临时目录中编写 go 代码时。我尝试调用“go build”,它们返回一个错误“没有这样的文件或目录”。我怎么能正确地做到这一点?谢谢大家:)下面是一些代码'// is not work too// goPath, err := exec.LookPath("go")var out, stderr bytes.Buffercmd := exec.Command(fmt.Sprintf("%s/go build /data/test/mycode.go", goPath))cmd.Stdout = &outcmd.Stderr = &stderrerr = cmd.Run()PS:但我直接在终端中调用命令“go build /data/test/mycode.go”。它可以工作。
1 回答

繁星点点滴滴
TA贡献1803条经验 获得超3个赞
fmt.Sprintf("%s/go build /data/test/mycode.go", goPath) string
返回内部除以空格的单个字符串,但作为单个字符串。
os/exec.Command(name string, arg ...string) *Cmd
期待一些论点。它本身不会分割一个字符串。
- 1 回答
- 0 关注
- 253 浏览
添加回答
举报
0/150
提交
取消