# BASH: Tester valeur paire vs impaire

**URL:** <https://www.debian-fr.org/t/bash-tester-valeur-paire-vs-impaire/87666>\
**Category:** Programmation\
**Created:** [Janvier 3, 2023, 6:52 UTC](https://www.debian-fr.org/t/bash-tester-valeur-paire-vs-impaire/87666 "2023-01-03T18:52:22Z")\
**Posts on this page:** 5\
**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:** [Janvier 3, 2023, 6:52 UTC](https://www.debian-fr.org/t/bash-tester-valeur-paire-vs-impaire/87666/1 "2023-01-03T18:52:22Z")

</div>

Bonne année 2023 pour toute la «communauté» des libristes, la santé pour tous 😷 et pour le monde (du) libre 🐧, et pour la santé de notre biosphère 🌿.

* * *

je cherche s’il existe un moyen simple de tester si une valeur est paire ou impaire.

Mon but est de transformer la sortie de` lsblk` en un tableau associatif, pour afficher finalement un comparatif entre les valeurs avant et après intervention.

Compteur=1  
for i in $(lsblk -lo NAME,FSUSE% | egrep --color=never %)  
do  
if [[$Compteur]]  
then  
#Impair=clé : créer la chaine « [$i]= »  
…  
else  
#Pair=valeur : créer la chaine « «&nbsp;$i&nbsp;» »  
…  
done  
#Concaténer la chaine de production du tableau:  
…

La sortie de la commande `lsblk -lo NAME,FSUSE%` se présente ainsi:

```
NAME FSUSE%
sda3 70%
sda4 45%
mmcblk0p1 79%
VG_1-lv_home 83%
seagateUSB4T-bkp 49%

```

et donc un élément sur deux est alternativement une clé et une valeur du futur tableau associatif.

Merci

---

<div class="post-metadata">

**Author:** ![Zargos](https://www.debian-fr.org/user_avatar/www.debian-fr.org/zargos/32/10889_2.png) [@Zargos](https://www.debian-fr.org/u/Zargos)\
**Post date:** [Janvier 3, 2023, 7:52 UTC](https://www.debian-fr.org/t/bash-tester-valeur-paire-vs-impaire/87666/2 "2023-01-03T19:52:04Z")

</div>

utilise le modulo.  
X mod 2 entier =\> pair  
X mod 2 donne un reste =\> impair

---

<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:** [Janvier 4, 2023, 2:56 UTC](https://www.debian-fr.org/t/bash-tester-valeur-paire-vs-impaire/87666/3 "2023-01-04T14:56:37Z")

</div>

C’est bien ce que je cherchai, mais je n’ai pas trouvé mod avec man bash.  
Merci Zargos

PS, j’ai retrouvé le % (opérateur modulo)

---

<div class="post-metadata">

**Author:** ![anon29980398](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/f4b2a3/32.png) [@anon29980398](https://www.debian-fr.org/u/anon29980398)\
**Post date:** [Janvier 4, 2023, 6:25 UTC](https://www.debian-fr.org/t/bash-tester-valeur-paire-vs-impaire/87666/4 "2023-01-04T18:25:07Z")

</div>

Bonjour

```nohighlight
mic@deb1156:~$ maVar=21; if test $(( maVar % 2 )) -eq 0; then echo "pair"; else echo "impair"; fi
impair
mic@deb1156:~$ 

```

```nohighlight
mic@deb1156:~$ maVar=20; if test $(( maVar % 2 )) -eq 0; then echo "pair"; else echo "impair"; fi
pair
mic@deb1156:~$ 

```

```nohighlight
mic@deb1156:~$ pairOuImpair() { test $(( $1 % 2 )) -eq 0; } # Création d'une fonction nommée 'pairOuImpair'
mic@deb1156:~$ 
mic@deb1156:~$ pairOuImpair 21 
mic@deb1156:~$ echo $?
1
mic@deb1156:~$ 
mic@deb1156:~$ pairOuImpair 20
mic@deb1156:~$ echo $?
0
mic@deb1156:~$ 
mic@deb1156:~$ pairOuImpair 21 && echo "Pair"
mic@deb1156:~$ 
mic@deb1156:~$ pairOuImpair 20 && echo "Pair"
Pair
mic@deb1156:~$ 
mic@deb1156:~$ pairOuImpair 21 || echo "Impair"
Impair
mic@deb1156:~$ pairOuImpair 20 || echo "Impair"
mic@deb1156:~$ 

```

---

<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:** [Janvier 5, 2023, 8:11 UTC](https://www.debian-fr.org/t/bash-tester-valeur-paire-vs-impaire/87666/5 "2023-01-05T20:11:05Z")

</div>

Merci MicP,  
🍾
