Go CLI输出:在中间杀死进程,但不需要输出

Go CLI输出:在中间杀死进程,但不需要输出,go,curl,timeout,command-line-interface,irc,Go,Curl,Timeout,Command Line Interface,Irc,我目前正在进行一个项目,该项目要求我发送一个curl请求。请求的输出提供了一个链接,该链接将在10秒内过期。链接开始下载。我正在尝试发送请求并从go程序中的链接下载文件。但是提供输出的链接需要10秒才能完成,之后我无法访问该链接。因此,我决定使用timeout命令过早地终止进程,并能够下载所需的文件。但是,当我在Go中尝试同样的事情时,我无法获得输出,直到它被杀死后才会显示出来 我只得到这个输出 % Total % Received % Xferd Average Speed Ti

我目前正在进行一个项目,该项目要求我发送一个curl请求。请求的输出提供了一个链接,该链接将在10秒内过期。链接开始下载。我正在尝试发送请求并从go程序中的链接下载文件。但是提供输出的链接需要10秒才能完成,之后我无法访问该链接。因此,我决定使用
timeout
命令过早地终止进程,并能够下载所需的文件。但是,当我在Go中尝试同样的事情时,我无法获得输出,直到它被杀死后才会显示出来

我只得到这个输出

 % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
 100  1320    0  1043  100   277     98     26  0:00:10  0:00:10 --:--:--    12
我使用下面的go脚本

cmd := exec.Command("chmod", "744", "end.sh")
    out, err := cmd.Output()
    cmd1 := exec.Command("./end.sh")
    out, err = cmd1.CombinedOutput()
    if err != nil {
        log.Fatalf("cmd.Run(endpoint) failed with %s\n", err)
    }

    fmt.Println(string(out))
这段代码调用一个shell脚本

timeout 5 curl XXXXXXXXX

那么,要从shell脚本或go脚本修改中获得输出,我可以做些什么呢?

它必须是curl吗?您只需从go调用http请求,就可以获得所需的输出,而无需执行curl。从go执行shell命令是错误的,需要花费95%的时间。通常,您只想在本机Go代码中重新创建行为。这说明您的问题最有可能是因为
curl
在其标准输出连接到tty时与连接到另一个进程时发出不同的输出。这是“Go”。不是“去郎”。你不应该在标题中加标签。