Alors qu’on pourrait croire que pour comparer deux nombres en bash, il suffirait de faire if [x > 3] ...
, il n’en est rien !
En bash, on utilise des opérateurs spéciaux pour ce genre d’opérations.
Pour comparer des entiers, voici ce qu’il faut mettre :
- -eq => est égal à
if [ "$a" -eq "$b" ]
- -ne => n’est pas égal à
if [ "$a" -ne "$b" ]
- -gt => est plus grand que
if [ "$a" -gt "$b" ]
- -ge => est plus grand que ou égal à
if [ "$a" -ge "$b" ]
- -lt => est plus petit que
if [ "$a" -lt "$b" ]
- -le => est plus petit que ou égal à
if [ "$a" -le "$b" ]
- > => est plus grand que (requiert double parenthèses)
(("$a" > "$b"))
- >= => est plus grand que ou égal à (requiert double parenthèses)
(("$a" >= "$b"))
- < => est plus petit que (requiert double parenthèses)
(("$a" < "$b"))
- <= => est plus petit que ou égal à (requiert double parenthèses)
(("$a" <= "$b"))
source : <http://www.tldp.org/LDP/abs/html/comparison-ops.html>