Administrator
Published on 2025-10-27 / 1 Visits
0

批量执行 curl 命令 100 次

#AI

好的,这里为您提供几种简单的 Bash 命令,可以批量执行 curl 命令 100 次。

方法一:使用 for 循环(最常用)

这是最直接和易读的方法。

for i in {1..100}; do curl -kv http://127.0.0.1:5678/get -H "Host: api.liunxp.fun"; done

命令解析:

  • for i in {1..100}: 创建一个从 1 到 100 的数字序列,for 循环会执行 100 次。
  • do ... done: 包裹每次循环要执行的命令。
  • curl -kv http://127.0.0.1:5678/get -H "Host: api.liunxp.fun": 您要执行的 curl 命令。

方法二:使用 while 循环

这种方法也很常见,尤其适合循环次数不确定的场景。

i=1; while [ $i -le 100 ]; do curl -kv http://127.0.0.1:5678/get -H "Host: api.liunxp.fun"; i=$((i+1)); done

命令解析:

  • i=1: 初始化一个计数器变量 i
  • while [ $i -le 100 ]: 当 i 小于或等于 100 时,继续循环。
  • i=$((i+1)): 每次循环结束后,将计数器 i 加 1。

方法三:使用 seqxargs

这种方法在处理管道和并行执行时非常强大。

seq 100 | xargs -I {} curl -kv http://127.0.0.1:5678/get -H "Host: api.liunxp.fun"

命令解析:

  • seq 100: 生成一个从 1 到 100 的数字列表,每个数字占一行。
  • |: 管道符,将 seq 命令的输出作为 xargs 命令的输入。
  • xargs -I {} ...: xargs 会读取输入的每一行,并将其替换到 {} 的位置。在这里,{} 没有被用到,只是为了让 curl 命令执行与输入行数相同的次数(即 100 次)。

实用扩展

如果您希望在每次请求之间有短暂的延迟(例如 1 秒),可以在 curl 命令后加上 sleep

# 使用 for 循环并添加 1 秒延迟
for i in {1..100}; do curl -kv http://127.0.0.1:5678/get -H "Host: api.liunxp.fun"; sleep 1; done

如果您希望并行执行以提高速度(例如,同时发起 10 个请求),可以使用 xargs-P 参数:

# 同时发起 10 个 curl 请求,直到完成 100 次
seq 100 | xargs -I {} -P 10 curl -kv http://127.0.0.1:5678/get -H "Host: api.liunxp.fun"

注意: 并行执行会给服务器带来更大的负载,请谨慎使用。

对于您的需求,方法一 是最简单、最推荐的选择。