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

curl每行输出时触发send_notify命令的问题求助

问题分析与解决

原因分析

  • 你的notify_pipe函数仅执行一次read操作,只能处理curl输出的第一行,之后函数就会退出,无法持续处理后续新行。
  • 部分流式接口的服务器响应需要curl禁用内部缓冲,否则数据会被缓存,无法实时输出到管道。

修复后的脚本

notify_pipe() {
    # 循环读取每一行输入,持续处理直到输入结束
    while read -r msg; do
        notify-send "$msg"
    done
}

# -N 禁用curl内部缓冲,配合stdbuf确保每行实时输出
stdbuf -oL curl -s -N https://my-server.com/status | notify_pipe

关键修改说明

  • while read -r msg; do ... done:让函数进入循环,持续读取curl输出的每一行,每读到一行就调用一次notify-send发送通知。
  • curl -N参数:关闭curl的内部缓冲机制,确保服务器推送的每一行数据都能立刻传递到管道中。
  • stdbuf -oL:强制curl的标准输出使用行缓冲,保证每行数据生成后立即刷新,而不是等待缓冲区填满才输出。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 08:25:13