Unix / Linux - Встроенные математические функции Shell
Привет,future programmers! Сегодня мы отправимся в увлекательное путешествие в мир встроенных математических функций Unix/Linux shell. Не волнуйтесь, если вы новички в программировании - я проведу вас через каждый шаг с четкими объяснениями и множеством примеров. Погружаемся!
Что такое встроенные функции Shell?
Before мы углубимся в математические функции, давайте поймем, что такое встроенные функции Shell. Это команды, интегрированные в саму shell, то есть они не требуют отдельной установки. Они всегда под рукой, готовые помочь вам выполнять различные задачи эффективно.
Почему использовать математические функции в скриптах Shell?
Вы можете задаться вопросом: "Зачем нам数学 в скриптах Shell?" Представьте, что вы пишете скрипт для расчета своего месячного бюджета или для анализа некоторых данных. Вот где эти функции могут пригодиться! Они позволяют вам выполнять вычисления прямо в вашем скрипте, экономя ваше время и силы.
Общие встроенные математические функции Shell
Давайте рассмотрим некоторые из наиболее часто используемых математических функций в Unix/Linux shell. Мы будем использовать shell Bash для наших примеров, так как он широко используется и предустановлен на многих системах.
1. Основные арифметические операции
Bash предоставляет несколько способов выполнения основных арифметических операций. Давайте посмотрим на них:
a. Использование команды expr
#!/bin/bash
a=10
b=5
sum=$(expr $a + $b)
echo "Сумма $a и $b равна: $sum"
Этот скрипт выведет: Сумма 10 и 5 равна: 15
Здесь expr
используется для вычисления выражения $a + $b
. Результат затем сохраняется в переменную sum
.
b. Использование двойных скобок (( ))
#!/bin/bash
a=10
b=5
((sum = a + b))
echo "Сумма $a и $b равна: $sum"
Этот метод короче и часто предпочтителен для простых арифметических операций.
2. Более сложные математические операции
Для более сложных вычислений Bash предоставляет команду bc
. Хотя это и не strictly встроенная функция, она часто доступна и очень полезна.
#!/bin/bash
pi=$(echo "scale=2; 22/7" | bc)
echo "Значение pi (до 2 знаков после запятой) равно: $pi"
Вывод: Значение pi (до 2 знаков после запятой) равно: 3.14
Здесь scale=2
устанавливает количество знаков после запятой, а bc
выполняет деление.
Таблица общих математических операций
Вот удобная таблица математических операций, которые вы можете выполнять в Bash:
Операция | Символ | Пример |
---|---|---|
Сложение | + | echo $((5 + 3)) |
Вычитание | - | echo $((10 - 4)) |
Умножение | * | echo $((6 * 7)) |
Деление | / | echo $((20 / 5)) |
Остаток от деления (Modulus) | % | echo $((17 % 3)) |
Возведение в степень | ** | echo $((2 ** 3)) |
Продвинутые математические функции
Теперь, когда мы рассмотрели основы, давайте explore более продвинутые математические функции. Они не встроены в сам Bash, но часто используются в скриптах через команду bc
.
1. Корень квадратный
#!/bin/bash
number=16
sqrt=$(echo "scale=2; sqrt($number)" | bc)
echo "Корень квадратный из $number равен: $sqrt"
Вывод: Корень квадратный из 16 равен: 4.00
2. Синус и косинус
#!/bin/bash
angle=30
sin=$(echo "scale=4; s($angle * 3.14159 / 180)" | bc -l)
cos=$(echo "scale=4; c($angle * 3.14159 / 180)" | bc -l)
echo "Синус $angle градусов равен: $sin"
echo "Косинус $angle градусов равен: $cos"
Вывод:
Синус 30 градусов равен: .4999
Косинус 30 градусов равен: .8660
Обратите внимание на опцию -l
с bc
, которая загружает математическую библиотеку для тригонометрических функций.
Практический пример: Конвертер температур
Давайте применим наши новые знания к практическому примеру - конвертеру температур!
#!/bin/bash
echo "Конвертер температур"
echo "1. Цельсий в Фаренгейты"
echo "2. Фаренгейты в Цельсий"
read -p "Введите ваш выбор (1/2): " choice
case $choice in
1)
read -p "Введите температуру в Цельсиях: " celsius
fahrenheit=$(echo "scale=2; ($celsius * 9/5) + 32" | bc)
echo "$celsius°C равен $fahrenheit°F"
;;
2)
read -p "Введите температуру в Фаренгейтах: " fahrenheit
celsius=$(echo "scale=2; ($fahrenheit - 32) * 5/9" | bc)
echo "$fahrenheit°F равен $celsius°C"
;;
*)
echo "Некорректный выбор"
;;
esac
Этот скрипт демонстрирует, как мы можем использовать математические функции в реальном сценарии. Он позволяет пользователям конвертировать температуры между Цельсиями и Фаренгейтами.
Заключение
Поздравления! Вы только что сделали свои первые шаги в мир скриптинга shell и математических функций. Помните, что практика makes perfect. Попробуйте создать свои собственные скрипты с использованием этих функций - может быть, калькулятор или скрипт для анализа данных.
Пока вы продолжаете свое путешествие в программировании, вы обнаружите, что эти базовые математические операции являются основой для более сложных вычислений. Продолжайте исследовать, продолжайте учиться и, самое главное, получайте удовольствие!
Счастливого кодирования, future tech wizards! ?????
Credits: Image by storyset