#!/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
Die if [$ number] -Anweisung ist das, was ich nicht einrichten kann
#!/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
Die if [$ number] -Anweisung ist das, was ich nicht einrichten kann
Antworten:
Sie können in Bash eine einfachere Syntax verwenden als einige der hier gezeigten:
#!/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 ))
erzwingen $number
, dass es als Basis 10 interpretiert wird (anstelle der durch die führende Null implizierten Basis 8 / Oktal).
Es wird kein bc benötigt, solange es sich um eine Ganzzahl handelt (für Gleitkommazahlen benötigen Sie jedoch bc): In bash funktioniert der Operator (()) wie expr .
Wie andere darauf hingewiesen haben, ist die gewünschte Operation 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
Wie wäre es mit dem bc
Befehl:
!/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
sich auf Berechnungen spezialisiert hat, kann es Dinge wie 33,3% 11,1 verarbeiten, die expr
wahrscheinlich ersticken würden.
Naguls Antwort ist großartig, aber nur zur Info, die gewünschte Operation ist Modul (oder Modulo) und der Operator ist im Allgemeinen %
.
Ich habe es anders gemacht. Überprüfen Sie, ob es bei Ihnen funktioniert.
Beispiel 1 :
num=11;
[ `echo $num/3*3 | bc` -eq $num ] && echo "is divisible" || echo "not divisible"
Output : not divisible
Beispiel 2:
num=12;
[ `echo $num/3*3 | bc` -eq $num ] && echo "is divisible" || echo "not divisible"
Output : is divisible
Einfache Logik.
12/3 = 4
4 * 3 = 12 -> gleiche Anzahl
11/3 = 3
3 * 3 = 9 -> nicht gleiche Anzahl
Nur im Interesse der Syntaxneutralität und der Korrektur der offensichtlichen Beeinträchtigung der Infix-Notation um diese Teile habe ich die Nagul-Lösung für die Verwendung modifiziert 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
installiert haben.
Sie könnten auch expr
so verwenden:
#!/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