This commit is contained in:
Gregory Chamberlain 2021-07-28 18:32:25 +02:00 committed by GitHub
commit 43a1a6e1e8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -894,21 +894,24 @@ var=$((var2 > var ? var2 : var))
is_float() {
# Usage: is_float "number"
# The test checks to see that the input contains
# a '.'. This filters out whole numbers.
[ -z "${1##*.*}" ] &&
printf %f "$1" >/dev/null 2>&1
# Printing as '%d' must fail in order to filter out whole numbers;
# then printing as '%f' will succeed if and only if '$1' is a float.
# This works for both decimal point form (i.g. 3.14) and standard form
# (e.g. 314e-2).
{ ! printf %d "$1" && printf %f "$1" ; } >/dev/null 2>&1
}
```
**Example Usage:**
```shell
$ is_float 1 && echo true
$
$ is_float 3 && echo true
$ is_float 1.1 && echo true
$ true
$ is_float 3.14 && echo true
true
$ is_float 314e-2 && echo true
true
```
## Check if a number is an integer
@ -926,10 +929,9 @@ is_int() {
```shell
$ is_int 1 && echo true
$ true
true
$ is_int 1.1 && echo true
$
```
# TRAPS