Изучаю bash программирование по Advanced Bash-Scripting Guide
Там есть задачка написать функцию 'isfloat ()', которая проверяла бы вещественные числа.
Есть подсказка: Эта функция подобна функции 'isdigit ()', надо лишь добавить анализ наличия десятичной точки.
Вот функция isdigit()
isdigit () # Проверка - состоит ли вся строка только из цифр.
{ # Другими словами - является ли строка целым числом.
[ $# -eq 1 ] || return $FAILURE
case $1 in
*[!0-9]*|"") return $FAILURE;; # не число
*) return $SUCCESS;;
esac
}
Если проверяю вещественное число так: *[0-9]*"."*[0-9]* # число.число
То все отлично срабатыет
Если проверяю вещественно число и обычное число: *[0-9]*"."*[0-9]*|*[0-9]* # число.число или число
То тоже все отлично
Но мне по задумке скрипта нужно проверить:
Если это не число, то FAILURE(не число) инача SUCCESS (число)
Поствить НЕ перед проверкой на число просто *[!0-9]*
А как посавить НЕ перед этим набором *[0-9]*"."*[0-9]* ??????