我试图编写一个简单的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]
我觉得这是常见的事情,但无法在任何地方找到它。
答案 0 :(得分:5)
Output
中第一个值的返回类型为[]byte
。 fmt.Println
显示每个切片元素的数值。
要显示命令输出的所需结果,您可以将字节切片转换为字符串或使用带有%s
动词的格式字符串:
fmt.Println(string(out))
或者:
fmt.Printf("%s\n", out)