Как сделать оператор, который проверяет, является ли что-то делимым чем-то еще без остатка (Bash)

#!/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

если [$number] оператор - то, что я не знаю, как настроить

21
задан 06.10.2009, 19:24

4 ответа

Можно использовать более простой синтаксис в Bash, чем некоторые из других показанных здесь:

#!/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
39
ответ дан 07.12.2019, 10:00
  • 1
    Спасибо!, который я знал, должен был быть более простой путь, но не имел никакой удачи. сценарии удара всегда были чем-то вроде черной магии мне. очень положительная сторона – quack quixote 04.10.2009, 13:06

Нет до н.э необходимый, пока это - целочисленная математика (Вам будет нужно до н.э для плавающей точки хотя): В ударе оператор (()) работает как expr.

Поскольку другие указали на операцию, которую Вы хотите, по модулю (%).

#!/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
11
ответ дан 07.12.2019, 10:00

Как насчет того, чтобы использовать bc команда:

!/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
3
ответ дан 07.12.2019, 10:00

Ответ Nagul является большим, но просто к вашему сведению, операция, которую Вы хотите, является модулем (или по модулю), и оператор обычно %.

3
ответ дан 07.12.2019, 10:00

Теги

Похожие вопросы