Opérateur à double test Unix et opérateurs relationnels

Dans les scripts bash,

if [[ $var1 != $var2 ]] 

est équivalent à la forme

 [ $var1 -ne $var2 ] 

Pourquoi les opérateurs relationnels ( <= , >= ) ne fonctionnent-ils pas dans le formulaire de test double? J’ai essayé [[ $var1 <= $var2 ]] dans un de mes scripts et cela me donne une erreur de syntaxe. Dois-je utiliser le formulaire [[ $var1 < $var2 || $var1 = $var2 ]] [[ $var1 < $var2 || $var1 = $var2 ]] ? Ou y a-t-il quelque chose qui me manque?

Vous pouvez utiliser la construction (( )) :

 $ (( 4 <= 5 )) && echo ok ok $ (( 4 <= 3 )) && echo ok || echo ko ko 

ou:

 var1=4 var2=5 if (( var1 <= var2 )) ; then echo ok fi