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

Bash中如何将Siege负载测试的统计摘要而非请求日志存入变量

问题根因

Siege 工具默认会将运行过程中的HTTP请求日志输出到标准输出(stdout),而最终的负载测试统计摘要会输出到标准错误(stderr)。你当前使用的$()命令替换逻辑只会捕获stdout的内容,自然无法拿到Lifting the server siege...之后的统计部分。

解决方案

方案1:捕获全部输出(包含请求日志+统计摘要)

在siege命令末尾添加2>&1,将stderr重定向到stdout,即可让命令替换捕获到所有输出内容:

SIEGE="$(siege -c $1 -t $2 [ip] 2>&1)"

方案2:仅捕获统计摘要(推荐,适合后续数值比对)

如果不需要中间的请求日志,可以直接添加siege自带的静默参数-q,关闭请求日志输出,仅保留统计摘要:

# -q 开启静默模式,仅输出最终统计结果
SIEGE_SUMMARY="$(siege -q -c $1 -t $2 [ip] 2>&1)"

小提示:输出变量时如果要保留原始的换行格式,需要用双引号包裹变量,即执行echo "$SIEGE_SUMMARY"而非echo $SIEGE_SUMMARY,否则所有换行都会被替换为空格。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 02:57:01