#!/bin/bash
Echo “Enter a number”
Read $number
If [$number ] ; then
Echo “Your number is divisible by 5”
Else
Echo “Your number is not divisible by 5”
fi
l'instruction if [$ number] est ce que je ne sais pas comment configurer
#!/bin/bash
Echo “Enter a number”
Read $number
If [$number ] ; then
Echo “Your number is divisible by 5”
Else
Echo “Your number is not divisible by 5”
fi
l'instruction if [$ number] est ce que je ne sais pas comment configurer
Réponses:
Vous pouvez utiliser une syntaxe plus simple dans Bash que certaines des autres illustrées ici:
#!/bin/bash
read -p "Enter a number " number # read can output the prompt for you.
if (( $number % 5 == 0 )) # no need for brackets
then
echo "Your number is divisible by 5"
else
echo "Your number is not divisible by 5"
fi
if (( 10#$number % 5 == 0 ))
pour forcer $number
à être interprété comme base 10 (au lieu de base 8 / octal impliqué par le zéro de tête).
Aucun bc n'est nécessaire tant qu'il s'agit de mathématiques entières (vous aurez cependant besoin de bc pour la virgule flottante): En bash, l' opérateur (()) fonctionne comme expr .
Comme d'autres l'ont souligné, l'opération que vous souhaitez est modulo (%) .
#!/bin/bash
echo "Enter a number"
read number
if [ $(( $number % 5 )) -eq 0 ] ; then
echo "Your number is divisible by 5"
else
echo "Your number is not divisible by 5"
fi
Que diriez-vous d'utiliser la bc
commande:
!/usr/bin/bash
echo “Enter a number”
read number
echo “Enter divisor”
read divisor
remainder=`echo "${number}%${divisor}" | bc`
echo "Remainder: $remainder"
if [ "$remainder" == "0" ] ; then
echo “Your number is divisible by $divisor”
else
echo “Your number is not divisible by $divisor”
fi
expr $number % $divisor
bc
spécialisé dans les calculs, il peut gérer des choses comme 33,3% 11,1 qui expr
s'étoufferaient probablement.
Je l'ai fait d'une manière différente. Vérifiez si cela fonctionne pour vous.
Exemple 1 :
num=11;
[ `echo $num/3*3 | bc` -eq $num ] && echo "is divisible" || echo "not divisible"
Output : not divisible
Exemple 2:
num=12;
[ `echo $num/3*3 | bc` -eq $num ] && echo "is divisible" || echo "not divisible"
Output : is divisible
Logique simple.
12/3 = 4
4 * 3 = 12 -> même nombre
11/3 = 3
3 * 3 = 9 -> pas le même nombre
Dans l'intérêt de la neutralité syntaxique et de la correction du biais de notation infixe manifeste autour de ces parties, j'ai modifié la solution de nagul à utiliser dc
.
!/usr/bin/bash
echo “Enter a number”
read number
echo “Enter divisor”
read divisor
remainder=$(echo "${number} ${divisor}%p" | dc)
echo "Remainder: $remainder"
if [ "$remainder" == "0" ]
then
echo “Your number is divisible by $divisor”
else
echo “Your number is not divisible by $divisor”
fi
dc
installé.
Vous pouvez également utiliser expr
comme ceci:
#!/bin/sh
echo -n "Enter a number: "
read number
if [ `expr $number % 5` -eq 0 ]
then
echo "Your number is divisible by 5"
else
echo "Your number is not divisible by 5"
fi