我有以下代码将数据从stdout输出到文件:
cmd := exec.Command("ls","lh") outfile, err := os.Create("./out.txt") if err != nil { panic(err) } defer outfile.Close() stdoutPipe, err := cmd.StdoutPipe() if err != nil { panic(err) } writer := bufio.NewWriter(outfile) defer writer.Flush() err = cmd.Start() if err != nil { panic(err) } go io.Copy(writer, stdoutPipe) cmd.Wait()
我需要将输出从stdout转换为字符串值而不是文件。我该如何实现?
可能还有另一个函数可以让我将io.Copy行更改为io.Copy(myStringVariable,stdoutPipe),因为我需要读取命令的输出并对其进行一些处理?
提前致谢
您不需要管道,编写器,goroutine等。只需使用Cmd.Output
out, err := exec.Command("ls","lh").Output()
您可以将输出转换[]byte为string根据需要用string(out)
[]byte
string
string(out)