В настоящее время я работаю над проектом, который требует, чтобы я отправил запрос 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))
Этот код вызывает скрипт оболочки.
timeout 5 curl XXXXXXXXX
Так, что я мог сделать, чтобы получить выходные данные из сценария оболочки или модификации сценария go?