NBash
50 строк · 1.2 Кб
1#!/bin/bash
2
3validint()
4{
5number="$1"
6min="$2"
7max="$3"
8
9# Проверка на пустой ввод
10if [ -z $number ]; then
11echo "Пустой ввод. Введите число" >&2
12return 1
13fi
14
15# Проверка на знак минус
16if [ "${number%${number#?}}" = "-" ]; then
17testvalue="${number#?}"
18else
19testvalue="$number"
20fi
21
22# Проверка на то что введено число
23nodigits="$(echo $testvalue | sed 's/[[:digit:]]//g')"
24
25if [ ! -z "$nodigits" ]; then
26echo "Неверный формат числа. Введите только цифры без разделителей." >&2
27return 1
28fi
29
30# Основное сравнение
31if [ ! -z $min ]; then
32if [ "$number" -lt "$min" ]; then
33echo "Введенное значение числа меньше заданного нижнего предела $min" >&2
34return 1
35fi
36fi
37
38if [ ! -z $max ]; then
39if [ "$number" -gt "$max" ]; then
40echo "Введено значение числа больше заданного верхнего предела $max" >&2
41return 1
42fi
43fi
44
45return 0
46}
47
48# if validint "$1" "$2" "$3" ; then
49# echo "Заданное число находится в диапазоне $min - $max"
50# fi