You need to enable JavaScript to run this app. Bash脚本如何实现curl状态码与读取的输入值同行输出
优惠活动
大模型
产品
解决方案
定价
更多

Bash脚本如何实现curl状态码与读取的输入值同行输出

脚本调整方案

现有脚本运行后仅输出HTTP状态码的核心原因:

  • 循环内只把curl的返回值直接输出到结果文件,没有将逐行读取的文件内容和状态码做同字符串拼接
  • curl的输出自带换行控制,没有和读取的行值做格式对齐

具体调整内容:

  • 将curl的返回结果存入临时变量,不再直接输出到stdout;修改-w参数移除自带的\n,拿到纯HTTP状态码
  • 用echo把逐行读取的输入值、逗号、状态码拼接成完整行后再输出,保证每条记录占单独一行

修改完成的可运行脚本:

#!/bin/bash
input="test.txt"
while IFS= read -r line ; do 
    http_code=$(curl -o /dev/null -s -w "%{http_code}" -u username:token "https://website.com/api/user$line")
    echo "${line},${http_code}"
done < "$input" > result.txt

调整后result.txt的输出效果完全匹配预期:

value1,400
value2,200
value3,200

注意:如果输入文件最后一行没有末尾换行,可能出现最后一行读取遗漏的情况,可将while判断逻辑调整为while IFS= read -r line || [ -n "$line" ]做兜底兼容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.05 13:06:03