From b1eaebd9057e1a19f826b8da00d948235f9ca9df Mon Sep 17 00:00:00 2001 From: fujr Date: Thu, 19 Dec 2024 15:50:28 +0800 Subject: [PATCH] enhance rate conversion function --- .../root/usr/share/qmodem/generic.sh | 23 ++++++++++++++----- 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/luci/luci-app-qmodem/root/usr/share/qmodem/generic.sh b/luci/luci-app-qmodem/root/usr/share/qmodem/generic.sh index d93f513..d8dcd4c 100755 --- a/luci/luci-app-qmodem/root/usr/share/qmodem/generic.sh +++ b/luci/luci-app-qmodem/root/usr/share/qmodem/generic.sh @@ -350,13 +350,24 @@ get_reboot_caps() rate_convert() { + #check if bc is installed + is_bc_installed=$(which bc) local rate=$1 rate_units="bps Kbps Mbps Gbps" - for i in $(seq 0 3); do - if [ $rate -lt 1024 ]; then - break - fi - rate=$(($rate / 1024)) - done + if [ -z "$is_bc_installed" ]; then + for i in $(seq 0 3); do + if [ $rate -lt 1024 ]; then + break + fi + rate=$(($rate / 1024)) + done + else + for i in $(seq 0 3); do + if [ $(echo "$rate < 1024" | bc) -eq 1 ]; then + break + fi + rate=$(echo "scale=2; $rate / 1024" | bc) + done + fi echo "$rate `echo $rate_units | cut -d ' ' -f $(($i+1))`" }