有没有一种方法可以使用参数替换来针对两个不同的服务器运行一个curl?

有没有一种方法可以使用参数替换来针对两个不同的服务器运行一个curl?

这是我能找到的帮助解决此问题的最佳页面,我没有看到我想在那里做什么:http://wiki.bash-hackers.org/syntax/pe。但我想我以前见过这样做的。

假设我想对 Bing 和 Google 运行相同的查询(假设这些可以工作):

curl -S "https://www.google.com?q=stackoverflow"

curl -S "https://www.bing.com?q=stackoverflow"

我可以将它们同时运行curl吗?喜欢curl -S "https://www.${'bing','google'}.com?q=stackoverflow"

我发誓我以前见过这样做的。但我显然语法错误。以及搜索词。

答案1

Curl 理解(并展开)大括号:

curl -S 'https://www.{bing,google}.com?q=stackoverflow;'

来自男人卷曲:

URL
您可以通过在大括号内编写部分集来指定多个 URL,如下所示:

    http://site.{one,two,three}.com

这与 shell 大括号扩展不同,Curl 会不是展开嵌套大括号,如以下 shell 代码示例所示:

$ echo {{1..3},{5..7}}
1 2 3 5 6 7

答案2

由 shell 作为两个 url 参数处理:

curl -S https://www.{bing,google}.com\?q=stackoverflow

由单个 url 参数中的内部curl 语法处理:

curl -S https://www.\{bing,google\}.com\?q=stackoverflow

相关内容