![](/img/trans.png)
[英]How to print to stdout while save the stdout to string at the same time in golang?
[英]How to get output from stdout into a string in golang
我有以下代碼將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)
您可以將文件設置為命令的stdout
f, err := os.Create("./out.txt")
if err != nil {
panic(err)
}
defer f.Close()
cmd := exec.Command("ls", "-lh")
cmd.Stdout = f
cmd.Stderr = os.Stderr
if err := cmd.Run(); err != nil {
panic(err)
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.