如何在 Golang 中执行带参数的 curl 命令?

如何在 golang 中执行带参数的 curl 命令?

如何在 golang 中执行带参的 curl 命令?

golang 中使用 exec.command 确实可以执行带参的命令,但需要严格遵循其参数规则:func command(name string, arg ...string),参数部分是一个可变参数字符串数组。

修改后的代码如下:

func main() {
    curl := exec.command("curl", "-k", "-s", "-v", "https://www.baidu.com")
    out, err := curl.output()
    if err != nil {
        fmt.println("error:", err)
        return
    }
    fmt.println(string(out))
}

另外,原命令行中的重定向操作 2>./tmp/ca.info 则是 shell 的功能,与 go 无关。go 中命令行的执行结果会输出到两个变量:out 和 err,其中 err 就是标准错误输出(stderr),你可以将其内容写入文件:

if err := curl.Run(); err != nil {
    io.Copy(os.Stderr, err) 
}

以上就是如何在 Golang 中执行带参数的 curl 命令?的详细内容,更多请关注其它相关文章!