29 lines
771 B
Bash
29 lines
771 B
Bash
#!/bin/bash
|
|
|
|
# Проверяем, что передано ровно два аргумента
|
|
if [ $# -ne 2 ]; then
|
|
echo "Ошибка: нужно указать два числа"
|
|
echo "Пример: $0 15 20"
|
|
exit 1
|
|
fi
|
|
|
|
# Сохраняем аргументы в переменные
|
|
a=$1
|
|
b=$2
|
|
|
|
# Проверяем, что аргументы — числа
|
|
if ! [[ "$a" =~ ^[0-9]+$ ]] || ! [[ "$b" =~ ^[0-9]+$ ]]; then
|
|
echo "Ошибка: аргументы должны быть целыми неотрицательными числами"
|
|
exit 1
|
|
fi
|
|
|
|
# Алгоритм Евклида для нахождения НОД
|
|
while [ $b -ne 0 ]; do
|
|
remainder=$((a % b))
|
|
a=$b
|
|
b=$remainder
|
|
done
|
|
|
|
# Выводим результат
|
|
echo $a
|