我想检查一个shell脚本的网站的速度。我使用时间格式来获得数字结果,但我有问题的比较。这是我的剧本:
#!/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,但结果始终为否。
编辑
这是脚本的结果
2,119
NO
型
编辑2
谢谢,这样解决
#!/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
型
1条答案
按热度按时间ojsjcaue1#
在脚本中使用
time
命令(用于计算)并不方便,因为您必须解析所有输出并转换数字等。你的第二个版本是一个更好的方法和作品。但是当你在bash算术函数
$(($end-$start))
中使用变量时,你不必在变量前面加上$
。另外,为什么在echo
-语句中使用$(($total))
?使用$total
。正如在注解中提到的,我还将使用SHELL内置的
$SECONDS
变量,而不是date
(它将作为子进程运行)。现在并不需要time
命令,但它可以很好地概述所使用的内核和用户模式CPU时间,这可能是您想要看到的。所以结果会是这样的:
字符串