# 问题:
> 本人是mac,docker默认安装在/user/local/bin/docker 。直接用exec.command("docker ...") 会提示找不到docker命令,所以手动在docker前加上了/user/local/bin/ 执行成功。
> 但是实际情况 ,docker目录不是一定的,所以想先获取docker安装位置,which docker 。得到路径再执行docker 命令,可是用exec.Command命令运行which docker一直失败,只有一个错误 state 1 .执行which tar都能返回正确路径 。
> 直接在终端执行都没有问题,使用exec.command出现以上问题。有没有遇到过类似问题的同事,请指点。
#主要代码如下:
```go
# func get_cmdPath(name string) string {
return exeSysCommand("which " + name)
}
func exeSysCommand(cmdStr string) string {
cmd := exec.Command("/bin/bash", "-c", cmdStr)
cmd.Stderr = os.Stderr
opBytes, err := cmd.Output()
if err != nil {
fmt.Println(err)
return ""
}
return string(opBytes)
}
```
几个执行结果图:
![image.png](https://static.studygolang.com/190115/7cbef56bce2658fda99426e90333e1e2.png)
![image.png](https://static.studygolang.com/190115/50f84ec5607c86a0f5ea30b2127d2465.png)
![image.png](https://static.studygolang.com/190115/3ef63a399cfa1478254ae72ddbb3fe3f.png)
欢迎各位大神评论。
有疑问加站长微信联系(非本文作者)