gpt4 book ai didi

curl - 为什么这个 curl 命令在 groovy 中执行时会失败?

转载 作者:行者123 更新时间:2023-12-04 12:42:28 25 4
gpt4 key购买 nike

此 curl 命令在终端中有效,但在 groovy 中失败。我从另一个问题中添加了 err 和 out 以尝试理解它失败的原因。

def initialSize = 4096
def out = new ByteArrayOutputStream(initialSize)
def err = new ByteArrayOutputStream(initialSize)
def process = "sh -c curl'https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts'".execute()
process.consumeProcessOutput(out, err)
process.waitFor()
println process.text
println err.toString()
println out.toString()

输出是“curl: try 'curl --help' or 'curl --manual' for more information”

最佳答案

不要使用字符串来执行,因为 Groovy 会根据空格进行拆分。您必须将“shell 命令”作为单个 参数传递给sh -c。所以现在你 a) curl 和 url 之间没有空格 b) 这将作为两个参数结束(你不能引用它)。

改用字符串列表:

['sh', '-c', "curl 'http://...'"].execute()

还有一个旁注:如果你只想要一个 url 的内容而不需要花哨的东西(超时,auth,......),你也可以这样做:

"https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts".toURL().text

关于curl - 为什么这个 curl 命令在 groovy 中执行时会失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56707382/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com