From 778682b3822b9522a371b84f3a59924cf6d92fb7 Mon Sep 17 00:00:00 2001 From: olli Date: Fri, 24 Nov 2023 16:07:21 +0100 Subject: [PATCH] new --- gaboshlib/g_calc.sh | 4 +++- gaboshlib/g_num_is_approx.sh | 6 ++++-- gaboshlib/g_num_is_between.sh | 9 +++++++-- gaboshlib/g_num_is_higher.sh | 6 ++++-- gaboshlib/g_num_is_lower.sh | 5 +++-- gaboshlib/g_percentage-diff.bashfunc | 23 +++++++++++++---------- 6 files changed, 34 insertions(+), 19 deletions(-) diff --git a/gaboshlib/g_calc.sh b/gaboshlib/g_calc.sh index 15dbd20..6373371 100644 --- a/gaboshlib/g_calc.sh +++ b/gaboshlib/g_calc.sh @@ -1,9 +1,11 @@ function g_calc { # Use bc in backround for multiple bc's running much faster + echo "start g_calc" if [ -z "${g_bc_running}" ] then g_rnd=$$ + echo "g_calc new fds" mkdir -p ${g_tmp}/${g_rnd} [ -p ${g_tmp}/${g_rnd}/bc-in ] || mkfifo ${g_tmp}/${g_rnd}/bc-in [ -p ${g_tmp}/${g_rnd}/bc-out ] || mkfifo ${g_tmp}/${g_rnd}/bc-out @@ -50,5 +52,5 @@ function g_calc { fi # echo result - echo ${g_sed_out} + g_calc_result="${g_sed_out}" } diff --git a/gaboshlib/g_num_is_approx.sh b/gaboshlib/g_num_is_approx.sh index c206d14..a933286 100644 --- a/gaboshlib/g_num_is_approx.sh +++ b/gaboshlib/g_num_is_approx.sh @@ -10,8 +10,10 @@ function g_num_is_approx { g_num_valid_number "${f_num}" "${f_base}" "${f_percentage_up}" "${f_percentage_down}" || return 1 - local f_from=$(g_calc "${f_base} - (${f_base} / 100 * ${f_percentage_down})") - local f_to=$(g_calc "${f_base} + (${f_base} / 100 * ${f_percentage_up})") + g_calc "${f_base} - (${f_base} / 100 * ${f_percentage_down})" + local f_from=${g_calc_result} + g_calc "${f_base} + (${f_base} / 100 * ${f_percentage_up})" + local f_to=${g_calc_result} g_num_is_between ${f_num} ${f_from} ${f_to} } diff --git a/gaboshlib/g_num_is_between.sh b/gaboshlib/g_num_is_between.sh index b794c82..f9a7764 100644 --- a/gaboshlib/g_num_is_between.sh +++ b/gaboshlib/g_num_is_between.sh @@ -29,7 +29,8 @@ function g_num_is_between { g_num_valid_number "$f_num" "$f_between1" "$f_between2" || return 1 # Check which is the low (from) and the high (to) number - if [ $(g_calc "${f_between1} < ${f_between2}") -ne 0 ] + g_calc "${f_between1} < ${f_between2}" + if [ ${g_calc_result} -ne 0 ] then local f_from=${f_between1} local f_to=${f_between2} @@ -38,7 +39,11 @@ function g_num_is_between { local f_to=${f_between1} fi # Check if given number is in or out range - if [ $(g_calc "${f_num} < ${f_from}") -ne 0 ] || [ $(g_calc "${f_num} > ${f_to}") -ne 0 ] + g_calc "${f_num} < ${f_from}" + local g_calc_result_from="${g_calc_result}" + g_calc "${f_num} > ${f_to}" + local g_calc_result_to="${g_calc_result}" + if [ ${g_calc_result_from} -ne 0 ] || [ ${g_calc_result_to} -ne 0 ] then return 1 else diff --git a/gaboshlib/g_num_is_higher.sh b/gaboshlib/g_num_is_higher.sh index dcd39ff..b619cef 100644 --- a/gaboshlib/g_num_is_higher.sh +++ b/gaboshlib/g_num_is_higher.sh @@ -18,7 +18,8 @@ function g_num_is_higher_equal { # Check for valid number g_num_valid_number "$f_num" "$f_checkhigher" || return 1 - if [ $(g_calc "${f_num} >= ${f_checkhigher}") -ne 0 ] + g_calc "${f_num} >= ${f_checkhigher}" + if [ ${g_calc_result} -ne 0 ] then return 0 else @@ -46,7 +47,8 @@ function g_num_is_higher { # Check for valid number g_num_valid_number "$f_num" "$f_checkhigher" || return 1 - if [ $(g_calc "${f_num} > ${f_checkhigher}") -ne 0 ] + g_calc "${f_num} > ${f_checkhigher}" + if [ ${g_calc_result} -ne 0 ] then return 0 else diff --git a/gaboshlib/g_num_is_lower.sh b/gaboshlib/g_num_is_lower.sh index 75584ac..00df3f4 100644 --- a/gaboshlib/g_num_is_lower.sh +++ b/gaboshlib/g_num_is_lower.sh @@ -18,7 +18,8 @@ function g_num_is_lower_equal { # Check for valid number g_num_valid_number "$f_num" "$f_checkhigher" || return 1 - if [ $(g_calc "${f_num} <= ${f_checkhigher}") -ne 0 ] + g_calc "${f_num} <= ${f_checkhigher}" + if [ ${g_calc_result} -ne 0 ] then return 0 else @@ -47,7 +48,7 @@ function g_num_is_lower { # Check for valid number g_num_valid_number "$f_num" "$f_checkhigher" || return 1 - if [ $(g_calc "${f_num} < ${f_checkhigher}") -ne 0 ] + if [ ${g_calc_result} -ne 0 ] then return 0 else diff --git a/gaboshlib/g_percentage-diff.bashfunc b/gaboshlib/g_percentage-diff.bashfunc index f7a2334..e59444a 100644 --- a/gaboshlib/g_percentage-diff.bashfunc +++ b/gaboshlib/g_percentage-diff.bashfunc @@ -1,10 +1,13 @@ -#!/bin/bash - -function g_percentage-diff { - local g_from=$1 - local g_to=$2 - g_num_valid_number "$g_from" "$g_to" || return 1 - [ $(g_calc "${g_from} == 0") -eq 1 ] && return 1 - [ $(g_calc "${g_to} == 0") -eq 1 ] && return 1 - printf -- "%.2f" $(g_calc "100/${g_from}*(${g_to}-${g_from})") -} +#!/bin/bash + +function g_percentage-diff { + local g_from=$1 + local g_to=$2 + g_num_valid_number "$g_from" "$g_to" || return 1 + g_calc "${g_from} == 0" + [ ${g_calc_result} -eq 1 ] && return 1 + g_calc "${g_to} == 0" + [ ${g_calc_result} -eq 1 ] && return 1 + g_calc "100/${g_from}*(${g_to}-${g_from})" + g_percentage_diff_result=$(printf -- "%.2f" "${g_calc_result}") +}