Skip to content

Instantly share code, notes, and snippets.

@themaximax
Created January 20, 2023 11:25
Show Gist options
  • Save themaximax/96730a5839fd0c8a92adbf4c9d05af5e to your computer and use it in GitHub Desktop.
Save themaximax/96730a5839fd0c8a92adbf4c9d05af5e to your computer and use it in GitHub Desktop.
Простой калькулятор на Bash. Синтаксис у Bash специфичный, некоторые конструкции могут быть полезны в будущем. Задание: Напишите свой калькулятор. В нем реализуйте простейшие арифметические операции: «+»; «-»; «*»; «/». Считывание параметров реализуйте с помощью read и select. Примечение: постарайтесь максимально защититься от ошибок, т.к. польз…
#!/bin/bash
#ДЗ Нетологии - Калькулятор. Максим Максимов
echo "Простой калькулятор на Bash"
PS3="Выберите операцию [1-5]: "
select opt in "+" "-" "*" "/" "выйти"; do
case $opt in
[-+*/] )
read -p "Введите первое число: " n1
read -p "Введите второе число: " n2
if ! [[ "$n1" =~ ^-?[0-9]+[.,]?[0-9]*$ ]] || ! [[ "$n2" =~ ^-?[0-9]+[.,]?[0-9]*$ ]]; then
echo "Ошибка ввода: нужно водить числа"
continue
fi
if [[ $n2 == 0 ]] && [[ $opt == "/" ]]; then
echo "Ошибка: на 0 делить нельзя"
continue
fi
echo "$n1 $opt $n2 = $(bc -l <<< "$n1 $opt $n2")"
;;
"выйти") break;;
* ) echo "Недопустимая опция $REPLY";;
esac
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment