# Bash: tester si une variable est un nombre

**URL:** <https://www.debian-fr.org/t/bash-tester-si-une-variable-est-un-nombre/90285>\
**Category:** Programmation\
**Created:** [Août 29, 2024, 9:04 UTC](https://www.debian-fr.org/t/bash-tester-si-une-variable-est-un-nombre/90285 "2024-08-29T09:04:20Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![josephtux](https://www.debian-fr.org/user_avatar/www.debian-fr.org/josephtux/32/3985_2.png) [@josephtux](https://www.debian-fr.org/u/josephtux)\
**Post date:** [Août 29, 2024, 9:04 UTC](https://www.debian-fr.org/t/bash-tester-si-une-variable-est-un-nombre/90285/1 "2024-08-29T09:04:20Z")

</div>

Bonjour,  
Dans un script bash, comment tester si une variable est un nombre (entier)?

J’imagine lancer une opération arithmétique et tester la réussite, mais ça me semble une solution bien tordue.  
N’existe-t-il pas un test spécifique?

J’ai testé ceci

```
for i in "$1" "$2" ; do
  if [[! "$i" =~\ [0..9\]?\[0..9\]* ]] ;
  then
    echo "$i n'est pas un nombre entier"
    exit 1
  else  
    UN="$1"
    DE="$2"
  fi
done

```

qui renvoie toujours faux…

---

<div class="post-metadata">

**Author:** ![yatta](https://www.debian-fr.org/user_avatar/www.debian-fr.org/yatta/32/12132_2.png) [@yatta](https://www.debian-fr.org/u/yatta)\
**Post date:** [Août 29, 2024, 11:43 UTC](https://www.debian-fr.org/t/bash-tester-si-une-variable-est-un-nombre/90285/2 "2024-08-29T11:43:18Z")

</div>

> **[Checking if a Variable Is a Number in Bash | Baeldung on Linux](https://www.baeldung.com/linux/bash-variable-is-numeric)**
>
> Learn how to check if a variable is a number in Bash.

---

<div class="post-metadata">

**Author:** ![josephtux](https://www.debian-fr.org/user_avatar/www.debian-fr.org/josephtux/32/3985_2.png) [@josephtux](https://www.debian-fr.org/u/josephtux)\
**Post date:** [Août 29, 2024, 5:17 UTC](https://www.debian-fr.org/t/bash-tester-si-une-variable-est-un-nombre/90285/3 "2024-08-29T17:17:04Z")

</div>

J’ai trouvé, ici:

[https://www.developpez.net/forums/d363498/systemes/linux/shell-commandes-gnu/script-bash-tester-1-numerique/](https://www.developpez.net/forums/d363498/systemes/linux/shell-commandes-gnu/script-bash-tester-1-numerique/)

`if [[$var = +([0-9]) ]] ; then`

---

<div class="post-metadata">

**Author:** ![josephtux](https://www.debian-fr.org/user_avatar/www.debian-fr.org/josephtux/32/3985_2.png) [@josephtux](https://www.debian-fr.org/u/josephtux)\
**Post date:** [Août 29, 2024, 5:19 UTC](https://www.debian-fr.org/t/bash-tester-si-une-variable-est-un-nombre/90285/4 "2024-08-29T17:19:24Z")

</div>

Merci Yatta,  
j’avais oublié d’envoyer la solution trouvée avec cette autre syntaxe.

Les deux sont intéressantes à étudier pour me permettre de progresser un peu.
