neočakávané reťazec na koniec Riadku.
Môžete použiť fmt.Sprintf
ak chcete formátovať reťazec tak, že nemusíte steh je spolu ručne. Zdá sa mi to jednoduchšie čítať a písať, sám:
fmt.Sprintf("curl -u admin:admin -H 'Accept: application/yang-data+json' -s http://%s/restconf/data/ -v", ip_string)
Zdá sa, ako ste sa snaží vytvoriť príkaz shell-u na vyvolanie Curl. Lepšie, ako sa snaží uniknúť vašej curl
argumenty pre shell, je na vyvolanie curl
priamo. Týmto spôsobom môžete použiť Prejdite na samostatné argumenty, bez toho aby sa museli starať o shell cituje:
cmd := exec.Command("curl",
"-u", "admin:admin",
"-H", "Accept: application/yang-data+json",
"-s",
fmt.Sprintf("http://%s/restconf/data/", ip_string),
"-v",
)
Avšak, keď som si bol, ja by som používať https://pkg.go.dev/net/http aby sa žiadosti a vyhnúť os/exec
úplne. Výkon a účinnosť, bude lepšie, a manipulácie reakcie a akékoľvek chyby, podmienky budú spôsobom jednoduchšie, než to, že cez curl
a snaží sa analyzovať výstup a rukoväť chybové kódy.
req, err := http.NewRequest("GET", fmt.Sprintf("http://%s", source_ip), nil)
// handle err
req.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!