Go:执行shell命令

时间:2013-06-09 11:18:44

标签: bash go exec

我在Go程序中执行shell命令时遇到了一些麻烦:

  var command = pwd + "/build " + file_name

  dateCmd := exec.Command(string(command))
  dateOut, err := dateCmd.Output()
  check(err)

如果command变量等于单个单词,例如/home/slavik/project/build(构建是shell脚本),它可以工作,但如果我尝试传递一些arg,即/home/slavik/project/build xxx/home/slavik/project/build -v=1 Go程序引发了像file /home/slavik/project/build not found

这样的异常

我的代码出了什么问题?

2 个答案:

答案 0 :(得分:9)

你必须分别传递程序和参数。请参阅exec.Command的签名:

func Command(name string, arg ...string) *Cmd

所以,如果你想通过,例如-v=1,您的电话可能应该类似于:

dateCmd := exec.Command(pwd + "/build", "-v=1")

答案 1 :(得分:4)

使用

exec.Command(pwd + "/build", fileName)