Linux bash, также известный как оболочка или просто командная строка, позволяет выполнять как базовые, так и сложные арифметические и булевы операции без необходимости запускать приложение калькулятора. Такие команды, как expr, jot, bc and, factor и т.д., помогут вам найти оптимальные математические решения сложных задач.
Команда expr
Команда expr или команда выражения в Linux является наиболее часто используемой командой, которая применяется для выполнения математических вычислений. Вы можете использовать эту команду для выполнения таких функций, как сложение, вычитание, умножение, деление, увеличение значения и даже сравнение двух значений. В этом разделе мы опишем синтаксис для выполнения вышеперечисленных вычислений, а также расскажем, как можно использовать команду expr для выполнения продуктивных математических вычислений в командной строке Ubuntu.
Сложение
Вы можете сложить два или более чисел с помощью команды expr следующим образом:
1 | expr number1 + number2 |
Пример:
1 | expr 100 + 10 |
Вычитание
Вы можете выполнить вычитание двух или более чисел с помощью команды expr следующим образом:
1 | expr number1 - number2 |
Пример:
1 | expr 100 - 10 |
Умножение
Вы можете выполнить умножение двух или более чисел с помощью команды expr следующим образом:
1 | expr number1 \* number2 |
Пример:
1 | expr 10 \* 10 |
Обратите внимание, что ниже приведен неправильный синтаксис для умножения чисел в командной строке Linux, так как командная строка использует простые звездочки в качестве ссылки на все файлы в текущем каталоге.
1 | expr 10 * 10 |
Деление
Вы можете разделить одно число на другое с помощью команды expr следующим образом:
1 | expr number1 / number2 |
Пример:
1 | expr 100 / 10 |
Инкремент переменной
Вы можете увеличить переменную в Linux, сначала определив ее следующим образом:
1 | count_variable=0 |
А затем, используя следующее выражение с помощью команды expr, выполнить операцию инкремента:
1 | count_variable=`expr $count_variable + 1` |
Теперь, когда вы передадите значение переменной с помощью следующей команды, она выведет увеличенное значение первоначально определенной переменной.
1 | echo $count_variable |
Сравнение
С помощью команды expr вы также можете проверить, больше ли число другого числа или нет.
1 | expr число1 \> число2 |
Пример:
1 | expr 20 \> 10 |
Значение результата 1 означает, что первое число больше второго. В то время как значение 0 указывает на то, что первое число не больше второго.
Пример:
1 | expr 10 \> 20 |
С помощью команды expr вы также можете узнать, равны или нет два числа, используя следующий синтаксис:
1 | expr number1 = number2 |
Примеры:
1 | expr 10 = 10 |
1 | expr 10 = 15 |
Значение результата 1 означает, что первое число равно второму. В то время как значение результата 0 указывает на то, что эти два числа не равны.
В приведенных выше примерах мы невооруженным глазом видим, что два сравниваемых числа равны или нет. Чем же полезна эта операция?
Допустим, во время работы программы мы хотим узнать, равно ли вычисленное среднее значение нескольких чисел 10 или нет. Здесь мы можем воспользоваться командой expr, чтобы сравнить результат переменной "average" с 10 и выполнить дальнейшие операции на основе этого результата.
1 2 | average=10 expr $average = 10 |
Продуктивное использование команды expr
Приведем пример, в котором команда expr может быть действительно продуктивной. В этом примере мы будем использовать команду expr для вычисления количества сладостей, которые получит ребенок, когда есть 10 детей и 122 сладости. Программа также вычислит количество оставшихся сладостей после того, как все дети получат равное количество сладостей.
1 2 3 4 5 6 7 8 | children=10 sweets =122 PerChildShare=`expr $sweets / $children` RemainingSweets=`expr $sweets - $children \* $PerChildShare` echo $PerChildShare echo $RemainingSweets |
Вывод отлично показывает, что справедливая доля каждого ребенка составляет 12, а в банке остается 2.
Команда jot
Команда jot в Linux помогает создать список чисел на основе значений, которые вы указываете в качестве начального числа и количества значений, которые вы хотите просмотреть после него. В этом разделе мы опишем синтаксис для выполнения вычислений через jot, а также расскажем, как вы можете использовать команду jot для выполнения продуктивных математических вычислений в командной строке Ubuntu.
Для того чтобы использовать команду jot в Ubuntu, вам сначала потребуется установить Athena-jot.
Введите следующую команду от имени sudo, так как только авторизованное лицо может добавлять/удалять и настраивать программное обеспечение на Ubuntu:
1 | sudo apt install athena-jot |
Система может предложить вам ввести Y/n для подтверждения продолжения установки. Пожалуйста, введите Y и нажмите Enter для продолжения, после чего программное обеспечение будет установлено на вашу систему.
Печать x чисел после числа y
С помощью команды jot вы можете вывести x чисел после числа y. Для этого используйте следующую команду:
1 | jot x y |
Следующий пример прояснит вам ситуацию:
1 | jot 5 1 |
Наш пример выводит список из 5(x) значений после числа 1(y).
Обратная печать x чисел после числа y до числа z
Вы также можете использовать команду jot для обратной печати x чисел после числа y до числа z. Для этого используйте следующий синтаксис:
1 | jot x y z |
Следующий пример прояснит вам ситуацию:
1 | jot 9 10 2 |
Наш пример обратного вывода отображает значения 9(x) перед числом 10(y), пока список не достигнет числа 2(z).
Продуктивное использование команды jot
Приведем пример, в котором команда jot может быть действительно продуктивной. В этом примере мы будем использовать команду jot для печати 15 (значение x) дней января, начиная с дня 1 (значение y).
1 | for i in `jot 15 1`; do echo Январь $i; done |
Команда factor
Как понятно из названия, команда factor в Linux используется для вычисления значений коэффициентов заданного числа.
Синтаксис:
1 | factor number |
Команда bc
Команда bc очень полезна при выполнении сложных операций в bash. Эта команда может выполнять сравнения, обрабатывать булевы выражения, вычислять квадратные корни, синусы, косинусы, тангенсы и т.д. Все, что вам нужно сделать, это передать математическое выражение команде bc следующим образом:
1 | echo "math_expression" | bc |
После этого на экране появится результат математического выражения.
Пример:
1 | echo "10+10/2-(2*2)" | bc |
Вычисление числа Пи
Поскольку команда bc не стесняется точности, а строка, которую вы хотите ввести, довольно проста, вы можете использовать ее для вычисления значения числа Пи с точностью до нужного вам количества знаков после запятой.
В следующем примере мы выводим значение числа pi, указав значение масштаба для округления десятичных дробей.
1 | echo "scale=2; 4*a(1)" | bc -l |
Поскольку значение масштаба равно 2, результат pi будет округлен до двух знаков после запятой.
1 | echo "scale=10; 4*a(1)" | bc -l |
Поскольку значение шкалы равно 10, результат pi будет масштабирован до десяти десятичных знаков.
Выполнение математических вычислений в Bash
Вы можете выполнять простые математические операции в bash, используя набор двойных скобок. С помощью этой техники в bash можно выполнять как арифметические, так и булевы операции.
Следующий список арифметических операций может быть выполнен в Linux bash:
- +, - Сложение, вычитание
- ++, - Инкремент, декремент
- *, / , % Умножение, деление, остаток
- ** Значение экспоненты
Пример 1:
1 2 3 | ((x=10)) (( e = e + 5 )) echo $e |
Пример 2:
1 2 3 | ((x=10)) ((x--)) echo $e |
Пример 3:
1 2 3 | ((x=10)) ((x=x**2)) echo $e |
Булевы и логические выражения
Математика bash также позволяет использовать булевы и логические выражения внутри сомнительных скобок для выполнения математических вычислений.
Пример:
1 2 3 | ((x=10)); ((y=5)) if (( x > y )); then echo $x; fi |
Этот пример сравнивает две переменные и выводит значение x только в том случае, если оно больше y.