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

Bash检测jmeter测试结果含Err:0始终匹配失败如何解决?

问题原因及解决方案

代码存在的3个核心问题

  • 运算符两侧缺少空格:Bash 的[[ ]]判断语法中,==匹配运算符左右必须加空格,否则$results== *"Err: 0"*会被识别为单个非空字符串,判断逻辑完全不符合预期。
  • 未捕获标准错误流:JMeter运行时的日志输出默认打印到标准错误流(stderr),$()默认仅捕获标准输出(stdout),导致results变量中根本没有你要匹配的日志内容。
  • Windows路径转义问题:Bash环境中反斜杠是转义字符,直接写Windows路径的反斜杠会导致路径识别错误,JMeter可能根本没有正常启动。

修正后的代码

第一步:修改变量赋值逻辑,补全捕获规则和路径格式

# 路径反斜杠替换为正斜杠,添加2>&1将标准错误合并到标准输出捕获
results=$("C:/Users/jbding/Documents/Programs/apache-jmeter-5.4.1/apache-jmeter-5.4.1/bin/jmeter.bat" -n -t "C:/Users/jbding/Documents/Projects/tests.jmx" 2>&1)

第二步:修正条件判断的空格

if [[ $results == *"Err: 0"* ]]; then
    echo "It's there!"
else 
    echo "Its not there"
fi

可选简化写法(无需存储变量)

直接通过grep判断输出是否包含目标字符串,性能更高:

"C:/Users/jbding/Documents/Programs/apache-jmeter-5.4.1/apache-jmeter-5.4.1/bin/jmeter.bat" -n -t "C:/Users/jbding/Documents/Projects/tests.jmx" 2>&1 | grep -q "Err: 0"
if [ $? -eq 0 ]; then
    echo "It's there!"
else
    echo "Its not there"
fi

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 19:15:04