假设我想在 go 程序中运行 ‘ls’,并将结果存储在一个字符串中。似乎有一些命令可以在 exec 和 os 包中派生进程,但是它们需要 stdout 等的文件参数。有没有办法将输出作为字符串?
现在有一个更简单的方法:
package main import ( "fmt" "log" "os/exec" ) func main() { out, err := exec.Command("date").Output() if err != nil { log.Fatal(err) } fmt.Printf("The date is %s\n", out) }
out标准输出在哪里。它的格式为[]byte,但您可以使用以下命令轻松将其更改为字符串:
out
[]byte
string(out)
您还可以使用CombinedOutput() 代替Output()which 返回标准输出和标准错误。
CombinedOutput()
Output()
执行命令