shell脚本求命令执行的时间差

本脚本主要实现实验过程中求实验执行的时间差,进行数据的分析,以下为shell 脚本

starttime=`date +'%Y-%m-%d %H:%M:%S'`
#执行程序
#需要执行的linux命令直接写入
ipfs add go-ipfs_v0.10.0_linux-amd64.tar.gz
ipfs add go1.11.5.linux-amd64.tar.gz
endtime=`date +'%Y-%m-%d %H:%M:%S'`
echo $starttime   $endtime
start_seconds=$(date --date="$starttime" +%s);
end_seconds=$(date --date="$endtime" +%s);
echo "本次运行时间: "$((end_seconds-start_seconds))"s"
                                                       
function getTiming(){
    start=$1
    end=$2

    start_s=$(echo $start | cut -d '.' -f 1)
    start_ns=$(echo $start | cut -d '.' -f 2)
    end_s=$(echo $end | cut -d '.' -f 1)
    end_ns=$(echo $end | cut -d '.' -f 2)


    time=$(( ( 10#$end_s - 10#$start_s ) * 1000 + ( 10#$end_ns / 1000000 - 10#$start_ns / 1000000 ) ))

    echo "$time ms"
}
start=$(date +%s.%N)
ipfs get QmWrZAyfLFZM4GWCiRrRh4ZXAiFQFzuLxABcFstAxWD4Sx
end=$(date +%s.%N)
result=$(getTiming $start $end)
echo $start  $end
echo $result

完善版本:从文件获取执行指令,执行后将结果输出到文件

function getTiming(){
    start=$1
    end=$2

    start_s=$(echo $start | cut -d '.' -f 1)
    start_ns=$(echo $start | cut -d '.' -f 2)
    end_s=$(echo $end | cut -d '.' -f 1)
    end_ns=$(echo $end | cut -d '.' -f 2)


    time=$(( ( 10#$end_s - 10#$start_s ) * 1000 + ( 10#$end_ns / 1000000 - 10#$start_ns / 1000000 ) ))

    echo "$time"
}
sum=0
num=0
avg=0
while read line
do

        start=$(date +%s.%N)
        echo $line | sh>>result.txt
        end=$(date +%s.%N)
        result=$(getTiming $start $end)
        echo $start  $end
        #将命令行界面输出的结果导入到result.txt文件中
        echo "上传所需时间:$result ms">>result.txt
        sum=`expr $sum + $result`
        num=`expr $num + 1`
#从指定的文件my.txt中读取命令进行执行        
done < my.txt
#将命令行界面输出的结果导入到result.txt文件中
echo "总时间:$sum">>result.txt
echo "总执行次数:$num">>result.txt
#求平均执行时间,精确到小数点后两位,用awk进行求解,` 这个符号不是单引号,而是tab上边的按键
avg=`awk -v x=$sum -v y=$num 'BEGIN{printf "%.2f\n",x / y}'`
#将命令行界面输出的结果导入到result.txt文件中
echo "平均时间:$avg">>result.txt
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Janson666

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值