一只斗牛犬
Line 末尾的意外字符串。您可以使用fmt.Sprintf格式化字符串,这样您就不必手动将其缝合在一起。我自己觉得这更容易阅读和写作:fmt.Sprintf("curl -u admin:admin -H 'Accept: application/yang-data+json' -s http://%s/restconf/data/ -v", ip_string)好像您正在尝试创建一个 shell 命令来调用 Curl。比试图逃避curlshell 的参数更好的是直接调用curl。这样,您可以使用 Go 分隔参数,而不必担心 shell 引用:cmd := exec.Command("curl", "-u", "admin:admin", "-H", "Accept: application/yang-data+json", "-s", fmt.Sprintf("http://%s/restconf/data/", ip_string), "-v",)但是,如果我是你,我会使用https://pkg.go.dev/net/http提出请求并os/exec完全避免。性能和效率会更好,处理响应和任何错误条件将比通过curl尝试解析输出和处理错误代码更容易。req, err := http.NewRequest("GET", fmt.Sprintf("http://%s", source_ip), nil)// handle errreq.Header.Add("Accept", "application/yang-data+json")req.SetBasicAuth("admin","admin")resp, err := client.Do(req)// handle err!defer resp.Body.Close()body, err := io.ReadAll(resp.Body)// handle err!