You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在shell脚本中取消已发起的curl请求

实现方案

核心逻辑是利用shell内置变量$!获取最近一次后台运行进程的PID,启动curl后直接杀掉对应PID即可取消请求。

修改后可用的完整脚本

for i in {1..50}
do 
  # 后台发起curl请求
  curl --location --request GET 'localhost/endpoint' --header 'Content-Type: application/json' &
  # 记录刚启动的curl进程PID
  curl_pid=$!
  # 终止进程取消请求
  kill $curl_pid
done

补充优化说明

  • 原脚本中的$(eval echo {1..50})写法冗余,Bash原生支持{1..50}范围遍历,无需额外调用eval、echo命令。
  • 如果需要保证请求已经发送到服务端再取消,可以在kill前加短延时,同时屏蔽kill的报错信息:
    for i in {1..50}
    do 
      curl --location --request GET 'localhost/endpoint' --header 'Content-Type: application/json' &
      curl_pid=$!
      # 延时100毫秒,确保请求已经发出
      sleep 0.1
      # 终止进程,屏蔽找不到进程的报错
      kill $curl_pid 2>/dev/null
      # 可选:回收进程状态避免产生僵尸进程
      wait $curl_pid 2>/dev/null
    done
    

内容的提问来源于stack exchange,提问作者Pbb

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 17:09:03