我在执行Go程序中的shell命令时遇到了一些麻烦:
var command = pwd + "/build " + file_name
dateCmd := exec.Command(string(command))
dateOut, err := dateCmd.Output()
check(err)
如果
command
变量等于一个单词,例如/home/slavik/project/build
(build是shell脚本),则可以工作,但是如果我尝试传递一些arg即/home/slavik/project/build xxx
或/home/slavik/project/build -v=1
,则Go程序会引发一个类似于file /home/slavik/project/build not found
的异常我的代码有什么问题?
最佳答案
您必须分别传递程序和参数。请参阅exec.Command的签名:
func Command(name string, arg ...string) *Cmd
所以如果你想通过
-v=1
,您的调用可能应该类似于:dateCmd := exec.Command(pwd + "/build", "-v=1")
关于bash - 如何执行shell命令,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17009039/