你如何在 golang 中打印多行 exec 输出
How do you print multiline exec output in golang
我正在尝试编写一个简单的 golang 程序来列出目录中的文件。每当我的 shell 命令产生多行时,它都会在 Go 中注册为数组
例如,当我尝试以下操作时:
import (
"log"
"os/exec"
"fmt"
)
func main (){
out,err := exec.Command("ls").Output()
if err != nil {
log.Fatal(err)
}
fmt.Println(out)
}
我最终得到输出 [101 108 105 109 115 116 97 116 115 46 105 109 108 10 101 110 118 10 115 99 114 97 116 99 104 10 115 114 99 10]
我觉得这是一件很常见的事情,但在这里的任何地方都找不到。
Output
中第一个值的 return 类型是 []byte
。 fmt.Println
显示的是每个切片元素的数值。
要显示命令输出的预期结果,您可以将字节切片转换为字符串或使用带有 %s
动词的格式字符串:
fmt.Println(string(out))
或者:
fmt.Printf("%s\n", out)
我正在尝试编写一个简单的 golang 程序来列出目录中的文件。每当我的 shell 命令产生多行时,它都会在 Go 中注册为数组
例如,当我尝试以下操作时:
import (
"log"
"os/exec"
"fmt"
)
func main (){
out,err := exec.Command("ls").Output()
if err != nil {
log.Fatal(err)
}
fmt.Println(out)
}
我最终得到输出 [101 108 105 109 115 116 97 116 115 46 105 109 108 10 101 110 118 10 115 99 114 97 116 99 104 10 115 114 99 10]
我觉得这是一件很常见的事情,但在这里的任何地方都找不到。
Output
中第一个值的 return 类型是 []byte
。 fmt.Println
显示的是每个切片元素的数值。
要显示命令输出的预期结果,您可以将字节切片转换为字符串或使用带有 %s
动词的格式字符串:
fmt.Println(string(out))
或者:
fmt.Printf("%s\n", out)