bash脚本和控制台之间命令执行时间的差异 - 脚本中的错误?

时间:2017-04-21 08:06:02

标签: bash curl

我做了一个脚本bash来执行几个" curl"动作。我注意到当我通过脚本或直接在控制台中执行相同的curl命令时会有很大的不同。

execution time for curl through bash script: 56 sec
execution time for curl directly from console (same command): 1 sec 

我的脚本中是否有错误(例如,写入命令的方式)? 这是我的bash脚本:

NUM_USER=0
NUM_RUNS=0

while [ $NUM_RUNS -le 0 ]
do
    while [ $NUM_USER -le 2 ]
    do
        sleep 0.5
        start_time=`date +%s`
        curl --proxy http://10.0.20.89:8080 --proxy-negotiate http://10.0.3.50 -u : --negotiate > /dev/null 2>&1
        end_time=`date +%s`
        echo execution time was `expr $end_time - $start_time` s
        NUM_USER=`expr $NUM_USER + 1`
        sleep 30
    done
    NUM_RUNS=`expr $NUM_RUNS + 1`
done

1 个答案:

答案 0 :(得分:0)

在两种情况下都找到了对数据包进行tcpdump的答案。 总之,使用脚本执行dns来解析地址(不需要),这会导致延迟。直接通过控制台,这些DNS请求不存在。 最后,命令的结果是相同的。