103 votes

Comment puis-je faire si l'arithmétique des instructions dans bash?

Je veux faire quelque chose comme ça :

 if [ $1 % 4 == 0 ]; then
...

Mais cela ne fonctionne pas.

Que dois-je faire à la place ?

14voto

Ján Vorčák Points 3636
a=4
if [ $(( $a % 4 )) -eq 0 ]; then                                
     echo "I'm here"
fi

14voto

chown Points 25161

les crochets simples ( [..] ) ne fonctionnent pas pour certains tests, essayez avec des crochets doubles ( [[...]] ) et enfermez le mod dans ((..)) pour évaluer le % opérateur correctement :

 if [[ $(( $1 % 4 )) == 0 ]]; then

Plus de détails ici : http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_07_02.html

4voto

potong Points 18653

Cela pourrait fonctionner pour vous:

 ((a%4==0)) && echo "$a is divisible by 4" || echo "$a is not divisible by 4"

ou plus succinctement :

 ((a%4)) && echo "$a is not divisible by 4" || echo "$a is divisible by 4"

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X