shell实现除法,保留小数点后N位

$more get_wstts_success.sh
#!/bin/bash

open_gw_1=$(ssh admin@open-gw-1 "sh /home/admin/bin/check_wstts_success.sh")
open_gw_2=$(ssh admin@open-gw-2 "sh /home/admin/bin/check_wstts_success.sh")
#echo $open_gw_1
#echo $open_gw_2
gw_1_all=$(echo $open_gw_1 | cut -d " " -f1)
gw_1_err=$(echo $open_gw_1 | cut -d " " -f2)
#echo $gw_1_all
#echo $gw_1_err
gw_2_all=$(echo $open_gw_2 | cut -d " " -f1)
gw_2_err=$(echo $open_gw_2 | cut -d " " -f2)
#echo $gw_2_all
#echo $gw_2_err

if [ $gw_1_all -eq 0 ] && [ $gw_2_all -eq 0 ]; then
    echo 1.00000
else
    successrate=$(echo "scale=5;rate=($gw_1_all + $gw_2_all - $gw_1_err - $gw_2_err) / ($gw_1_all + $gw_2_all);if(length(rate)==scale(rate)) print 0;print rate"|bc)
    echo $successrate
fi

 

第二种实现方法:

awk 'BEGIN{printf "%0.6f",5/6}'

 

posted @ 2017-07-05 22:22  宝山方圆  阅读(7376)  评论(0编辑  收藏  举报