Go语言如何拼接含引号、斜杠的字符串?拼接curl命令报错如何解决
Go语言拼接curl命令字符串报错的解决方法
你遇到的
unexpected string at the end of Line报错,通常是两类原因导致:
- 字符串拼接时存在未闭合的引号、上下文代码漏写括号/分号等基础语法问题
- 把拼接后的整串curl命令直接传给了
exec.Command,没有按照要求拆分为独立参数
场景1:仅需生成curl命令字符串
如果你的需求只是得到符合要求的curl命令文本,推荐用Go的原生字符串字面量配合fmt.Sprintf实现,不需要手动拼接字符串,也不需要处理引号转义:
import "fmt" // ipString为你已定义的IP地址变量 cmd := fmt.Sprintf(`curl -u admin:admin -H 'Accept: application/yang-data+json' -s http://%s/restconf/data/ -v`, ipString)
场景2:需要在Go代码中执行该curl命令
如果是要实际执行命令,不推荐直接传递整串命令,符合Go标准库规范的写法是把命令和参数拆分后传给exec.Command:
import ( "fmt" "os/exec" ) ipString := "192.168.1.100" // 替换为实际IP值 requestUrl := fmt.Sprintf("http://%s/restconf/data/", ipString) // 按顺序传入命令和所有参数 cmd := exec.Command("curl", "-u", "admin:admin", "-H", "Accept: application/yang-data+json", "-s", requestUrl, "-v", ) // 执行命令并获取输出 output, err := cmd.CombinedOutput() if err != nil { // 自行处理错误逻辑 }
内容的提问来源于stack exchange,提问作者Pulkit Kundra
相关产品推荐
相关产品推荐

