BASH Программирование

bc для выполнения расширенных арифметических операций в BASH

bc для выполнения расширенных арифметических операций в BASH
Базовый калькулятор, также известный как bc, - это утилита командной строки Linux, используемая для выполнения расширенной арифметики и алгебры в сценариях bash. Он предоставляет множество различных математических функций, таких как синус, косинус, тангенс, натуральный логарифм в bash. Bash не может выполнять сложные арифметические операции, такие как сравнение чисел с плавающей запятой; вот где bc пригодится. Команде 'bc' предшествовала 'dc' (Настольный калькулятор), служебная программа UNIX. В этом руководстве мы будем использовать команду 'bc' для выполнения сложных арифметических операций.

Выполнение основных арифметических операций

Простые арифметические операции, такие как сложение, вычитание, деление и умножение, можно выполнять с помощью команды 'bc'. Синтаксис для применения простых бинарных операторов в bash с помощью команды 'bc' следующий.

[электронная почта защищена]: ~ $ echo « »| до н.э

В этом разделе мы будем использовать команду 'bc' для выполнения простых арифметических операций.

[электронная почта защищена]: ~ $ num1 = 2.35322 5
[электронная почта защищена]: ~ $ num2 = 1.223353
[электронная почта защищена]: ~ $ echo «$ num1 + $ num2» | до н.э
3.576578
[электронная почта защищена]: ~ $ echo «$ num1- $ num2» | до н.э
1.129872
[электронная почта защищена]: ~ $ echo «$ num1 * $ num2» | до н.э
2.878824
[электронная почта защищена]: ~ $ echo «$ num1 / $ num2» | до н.э
1

В приведенном выше примере при выполнении деления мы получили результат без десятичных знаков. Чтобы получить результат с точностью до «n» десятичных знаков, мы должны установить значение шкалы на «n», как показано в следующем примере.

[электронная почта защищена]: ~ $ echo «scale = 10; $ num1 / $ num2 ”| до н.э
1.9235862420

В качестве альтернативы мы можем использовать флаг '-l' и команду 'bc', чтобы получить десятичный вывод.

[электронная почта защищена]: ~ $ echo «$ num1 / $ num2» | bc -l
1.92358624207403750184

Команду 'bc' также можно использовать для выполнения модульного деления и вычисления мощности числа в сценариях bash.

[электронная почта защищена]: ~ $ echo «10% 4» | до н.э
2
[адрес электронной почты защищен]: ~ $ echo «10 ^ 2» | до н.э
100

Выполнение сложных арифметических операций

До сих пор мы использовали команду 'bc' для выполнения некоторых основных арифметических операций, таких как сложение, вычитание, умножение и т. Д., сейчас; в этом разделе мы будем использовать команду 'bc' для выполнения некоторых сложных арифметических операций. Мы обсудим, как мы можем использовать операторы сравнения, логические или логические операторы, расширенные математические функции и условные операторы в bash с помощью команды 'bc'.

Операторы сравнения

Операторы сравнения берут два числа, сравнивают их и возвращают 1 или же 0 в зависимости от сравнения. Если сравнение верно, то результат ИСТИНА (1); в противном случае это ЛОЖЬ (0). Ниже приведены несколько примеров операторов сравнения.

  • число1> число2: Это сравнение вернет 1 если число1 больше, чем число2.
  • число1 < num2: Результат будет 1 если число1 меньше, чем число2.
  • число1 <= num2: Результат будет 1 если число1 меньше или равно число2.
  • число1> = число2: Результат будет 1 если число1 больше или равно число2.
  • число1 == число2: Результат будет 1 если число1 равно число2.
  • число1 != число2: Результат будет 1 если оба числа не равны.

Ниже приведены несколько примеров операторов сравнения, используемых вместе с командой bc.

[электронная почта защищена]: ~ $ echo «5 == 5» | до н.э
1
[электронная почта защищена]: ~ $ echo «4!= 4 ”| до н.э
0
[электронная почта защищена]: ~ $ echo «2> 5» | до н.э
0
[электронная почта защищена]: ~ $ echo «4<=4” | bc
1

Логические операторы

Булевы или логические операторы используются в условных операторах для выполнения некоторых логических решений. Ниже приведены три основных логических оператора.

  • stat1 && stat2: Это вернет 1 если оба утверждения ненулевой.
  • stat1 || stat2: Это вернет 1 если какое-либо из утверждений ненулевой.
  • ! stat: Это вернет 1 если заявление ненулевой и наоборот.

В следующих примерах показано, как логические операторы используются с командой 'bc'.

[электронная почта защищена]: ~ $ echo «-5 && 0» | до н.э
0
[электронная почта защищена]: ~ $ echo «-1 || 0 ”| до н.э
1
[электронная почта защищена]: ~ $ echo «! 0 ”| до н.э
1

Условные утверждения

Условные операторы используются для выполнения определенных команд в зависимости от применяемого условия. Применяемое условие в условном операторе включает логические операторы и операторы сравнения. Ниже приведен пример условных операторов с командой 'bc'.

[электронная почта защищена]: ~ $ a = 15
[электронная почта защищена]: ~ $ b = 20
[электронная почта защищена]: ~ $ echo 'if (a> b) напечатайте «a больше» else напечатайте «b больше»' | bc -l
b больше

В приведенном выше примере инструкция проверяет, больше ли a, чем b или нет. Если a больше, чем b, будет напечатано «a больше»; в противном случае будет напечатано «b больше.”Мы можем применить любое условие, используя логические операторы и операторы сравнения в приведенном выше примере.

Математические функции

Команда 'bc' также предоставляет некоторые встроенные математические функции, которые мы можем использовать, не определяя их. Ниже приведены некоторые важные функции, используемые с командой bc в bash.

  • s (x): возвращает синус x, где x в радианах
  • c (x): возвращает косинус x, где x в радианах
  • а (х): возвращает арктангенс x и результат в радианах
  • sqrt (x): возвращает квадратный корень из x. Это вызывает ошибку времени выполнения, когда x отрицательно
  • l (x): возвращает натуральный логарифм x.

Эти функции можно использовать с командой 'bc', как показано в следующих примерах.

[электронная почта защищена]: ~ $ pi = 3.1415
[электронная почта защищена]: ~ $ echo «s ($ pi / 2)» | bc -l
1
[электронная почта защищена]: ~ $ echo «c ($ pi / 2)» | bc -l
0
[электронная почта защищена]: ~ $ echo «a (1)» | bc -l
0.7854

Квадратный корень из числа можно вычислить в bash с помощью команды 'bc', как показано на следующем рисунке.

[адрес электронной почты защищен]: ~ $ echo «sqrt (4)» | bc -l
2

При попытке вычислить квадратный корень из отрицательного числа оболочка выдаст ошибку времени выполнения.

[электронная почта защищена]: ~ $ echo «sqrt (-2)» | bc -l
Ошибка выполнения (func = (main), adr = 4): квадратный корень из отрицательного числа

Натуральный логарифм числа можно вычислить в bash с помощью команды 'bc' следующим образом.

[электронная почта защищена]: ~ $ echo «l (2)» | bc -l
.69314718055994530941

Заключение

При написании сценариев автоматизации на bash иногда нам нужны продвинутые математические функции и логические операторы для выполнения команд. Команда 'bc' предоставляет множество сложных математических функций и операторов для выполнения арифметических вычислений высокого уровня. В этом руководстве обсуждалось использование команды 'bc' для выполнения расширенных арифметических операций в bash.

Добавьте жесты мыши в Windows 10 с помощью этих бесплатных инструментов
В последние годы компьютеры и операционные системы сильно эволюционировали. Было время, когда пользователям приходилось использовать команды для навиг...
Контроль и управление перемещением мыши между несколькими мониторами в Windows 10
Диспетчер мыши с двумя дисплеями позволяет контролировать и настраивать движение мыши между несколькими мониторами, замедляя ее движения возле границы...
WinMouse позволяет настраивать и улучшать движение указателя мыши на ПК с Windows
Если вы хотите улучшить функции указателя мыши по умолчанию, используйте бесплатное ПО WinMouse. Он добавляет дополнительные функции, которые помогут ...