在 Go 中使用外部系统命令时,您可能会遇到需要捕获其输出并将其存储在程序中的情况。虽然 exec 和 os 包提供了用于进程执行的各种命令,但它们通常需要文件参数来处理标准输入/输出。本文介绍了一种将命令输出捕获为字符串的简化方法。
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) }
在此示例中,exec.Command("date").Output() 用于运行 date 命令并在 out 变量中捕获其输出。 Output() 方法以 []byte 切片的形式返回命令的标准输出,可以使用 string(out) 轻松将其转换为字符串。
或者,您可以使用 CombinedOutput() 而不是 Output(),它同时返回标准输出和标准错误。此外,exec.Command 函数允许您设置其他参数,例如命令的工作目录、环境变量和输入。
以上是如何在 Go 中将系统命令输出捕获为字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!