From e1d7651100580d083b1c7c3e64a352b96639e260 Mon Sep 17 00:00:00 2001 From: olli Date: Tue, 31 Oct 2023 17:30:27 +0100 Subject: [PATCH] =?UTF-8?q?gaboshlib/g=5Fnum=5Fis=5Fbetween.sh=20hinzugef?= =?UTF-8?q?=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gaboshlib/g_num_is_between.sh | 47 +++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 gaboshlib/g_num_is_between.sh diff --git a/gaboshlib/g_num_is_between.sh b/gaboshlib/g_num_is_between.sh new file mode 100644 index 0000000..3c0cc2d --- /dev/null +++ b/gaboshlib/g_num_is_between.sh @@ -0,0 +1,47 @@ +function g_num_is_between { + + local f_num=$1 + local f_between1=$2 + local f_between2=$3 + + # Check for integer (can be done with bash itself) + if [[ ${f_num} =~ ^[0-9]+$ ]] && [[ ${f_between1} =~ ^[0-9]+$ ]] && [[ ${f_between2} =~ ^[0-9]+$ ]] + then + # Check which is the low (from) and the high (to) number + if [ "${f_between1}" -lt "${f_between2}" ] + then + local f_from=${f_between1} + local f_to=${f_between2} + else + local f_from=${f_between2} + local f_to=${f_between1} + fi + # Check if given number is in or out range + if [ ${f_num} -lt ${f_from} ] || [ ${f_num} -gt ${f_to} ] + then + return 1 + else + return 0 + fi + fi + + # Check for valid number + g_num_valid_number "$f_num" "$f_between1" "$f_between2" || return 1 + + # Check which is the low (from) and the high (to) number + if [ $(echo "${f_between1} < ${f_between2}" | bc -l) -ne 0 ] + then + local f_from=${f_between1} + local f_to=${f_between2} + else + local f_from=${f_between2} + local f_to=${f_between1} + fi + # Check if given number is in or out range + if [ $(echo "${f_num} < ${f_from}" | bc -l) -ne 0 ] || [ $(echo "${f_num} > ${f_to}" | bc -l) -ne 0 ] + then + return 1 + else + return 0 + fi +}