好的,这里为您提供几种简单的 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。
方法三:使用 seq 和 xargs
这种方法在处理管道和并行执行时非常强大。
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"
注意: 并行执行会给服务器带来更大的负载,请谨慎使用。
对于您的需求,方法一 是最简单、最推荐的选择。