个人技术分享

在golang中调用外部程序的对象 exec.Cmd 有4种方式来启动并执行外部程序,具体如下:

1. Run 执行命令并等待命令完成;

2. Start 执行命令后即返回,这个需要和 Wait命令来等待命令执行完成 配合使用;

3. Output 执行命令并返回标准输出的切片。

4. CombinedOutput 执行命令并返回标准输出和错误输出合并的切片。

注意事项

xxPipe的方法都只能和Start和Wait联合使用, 因为Wait方法获知命令结束后会关闭这个管道. 详情如下:

StdoutPipe 方法返回一个在命令Start后与命令标准输出关联的管道;

这个输出管道很有用, 我们可以使用json decode来将命令的输出结果和我们定义的对象进行绑定或者接收命令的输出数据,

如: json.NewDecoder(stdOut).Decode(&stu)

StdinPipe 方法返回一个在命令Start后与命令标准输入关联的管道。

他可以将我们的标准输入信息传递到命令的输入参数里面

StderrPipe 方法返回一个在命令Start后与命令标准错误输出关联的管道。

他是我们获取命令错误信息用的

详细使用方法可参考官方使用示例

https://pkg.go.dev/os/exec#pkg-examples