如何在Golang中使用exec.Command().Output()命令填充结构值?
我已经在Golang中编写了以下代码,我需要将输出值传递到dateStruct中,是否有人可以帮助我如何实现,或者是否有其他更好的方法将终端的命令输出传递到结构中如何在Golang中使用exec.Command().Output()命令填充结构值?,go,Go,我已经在Golang中编写了以下代码,我需要将输出值传递到dateStruct中,是否有人可以帮助我如何实现,或者是否有其他更好的方法将终端的命令输出传递到结构中 type dateStruct struct { day string month string year string } func main() { out, err := exec.Command("date").Output() if err != nil { log
type dateStruct struct {
day string
month string
year string
}
func main() {
out, err := exec.Command("date").Output()
if err != nil {
log.Fatal(err)
}
fmt.Printf("The date is %s\n", out)
fmt.Println(dateStruct{})
}
由于命令的输出可以是任何内容(可以是任何命令),因此必须创建映射代码 结构中的赋值可以如下所示:
ds:=&dateStruct{
day: parseDay(out),
month: parseMonth(out),
year: parseYear(out),
}
由于命令的输出可以是任何内容(可以是任何命令),因此必须创建映射代码 结构中的赋值可以如下所示:
ds:=&dateStruct{
day: parseDay(out),
month: parseMonth(out),
year: parseYear(out),
}
确切地说,命令的输出可以是任何命令。在本例中,我只有4个特定的命令,并且正在寻找是否有其他方法来运行该命令并获得输出。同时看看命令本身:一些命令将为您提供结构化输出(如json、yaml或xml),使您的生活更加轻松。确切地说,命令的输出可以是任何命令。在本例中,我只有4个特定的命令,并且正在寻找是否有其他方法来运行该命令并获得输出。同时看看命令本身:一些命令将为您提供结构化输出(如json、yaml或xml),使您的生活更加轻松。您到底想做什么?exec.Command().Output()根据正在执行的命令变化很大。如果您的最终目标是获取当前日期,那么有更好的方法来实现。正如@CeriseLimón所提到的,输出的格式非常关键。我假设
日期
只是一个例子。理想情况下,如果您能够以可解析格式(JSON、YAML等)输出命令,那么您可以在命令的stdout
上使用Pipe
,并将Pipe的io.Reader
直接传递到相应的解码器中(JSON.Decoder
,YAML.Decoder
等)。您到底想做什么?exec.Command().Output()根据正在执行的命令变化很大。如果您的最终目标是获取当前日期,那么有更好的方法来实现。正如@CeriseLimón所提到的,输出的格式非常关键。我假设日期
只是一个例子。理想情况下,如果您能够以可解析格式(JSON、YAML等)输出命令,那么您可以在命令的stdout
上使用Pipe
,并将Pipe的io.Reader
直接传递到相应的解码器中(JSON.Decoder
,YAML.Decoder
等)