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

Bash脚本网站测速:time命令结果比较异常问题及解决

Shell脚本检测网站访问速度:TIMEFORMAT数值比较问题及解决方法

问题描述

尝试用Shell脚本检测网站访问速度,通过TIMEFORMAT环境变量获取time命令输出的耗时数值,但在进行数值比较判断时出现异常。初始脚本如下:

#!/bin/bash

TIMEFORMAT=%E
TOTAL=`time wget -pq --no-cache --delete-after -H https://www.netflix.com 2>&1`
echo $TOTAL

if [[ "$TOTAL" -gt 0 ]]; then
    echo 'YES'
else
    echo 'NO'
fi

脚本执行后显示耗时为2,119秒,但条件判断始终输出NO。

问题原因

TIMEFORMAT=%E输出的是带逗号的浮点数字符串(逗号是部分locale环境下的小数点分隔符),而bash的-gt属于整数比较运算符,无法识别带逗号的非整数字符串,导致比较逻辑失效,最终判断结果不符合预期。

解决方法

改用记录开始/结束时间戳的方式计算耗时,通过整数时间戳的差值得到整数形式的耗时,即可正常进行数值比较。修正后的脚本如下:

#!/bin/bash

start=$(date +%s)
time wget -pq --no-cache --delete-after -H https://www.netflix.com 2>&1
end=$(date +%s)
total=$(($end-$start))

echo "Elapsed Time: $(($total)) seconds"

if [[ $total -gt 1 ]]; then
    echo 'YES'
else
    echo 'NO'
fi

此方法通过date +%s获取当前时间的秒级时间戳,计算差值得到整数耗时,避免了浮点字符串的解析问题,数值比较逻辑可以正常工作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 08:52:37