#!/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
la declaración if [$ number] es lo que no sé cómo configurar
#!/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
la declaración if [$ number] es lo que no sé cómo configurar
Respuestas:
Puede usar una sintaxis más simple en Bash que algunas de las otras que se muestran aquí:
#!/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 ))
forzar $number
a ser interpretado como base 10 (en lugar de base 8 / octal implícito por el cero inicial).
No se necesita bc siempre que sea matemática entera (aunque necesitará bc para coma flotante): en bash, el operador (()) funciona como expr .
Como otros han señalado, la operación que desea es módulo (%) .
#!/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
¿Qué hay de usar el bc
comando:
!/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
especializa en cálculos, puede manejar cosas como 33.3% 11.1 que expr
probablemente se ahogarían.
Lo he hecho de otra manera. Comprueba si te funciona.
Ejemplo 1 :
num=11;
[ `echo $num/3*3 | bc` -eq $num ] && echo "is divisible" || echo "not divisible"
Output : not divisible
Ejemplo 2
num=12;
[ `echo $num/3*3 | bc` -eq $num ] && echo "is divisible" || echo "not divisible"
Output : is divisible
Lógica simple
12/3 = 4
4 * 3 = 12 -> mismo número
11/3 = 3
3 * 3 = 9 -> no es el mismo número
Solo en aras de la neutralidad de la sintaxis y la reparación del sesgo de notación infijo abierta alrededor de estas partes, he modificado la solución de nagul para usar 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
instalado.
También puedes usar expr
así:
#!/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