Bash арифметические операции

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

Пример — 1: Использование команды expr

Самая старая команда для выполнения арифметических операций в bash используется ‘ expr ‘. Эта команда может работать только с целочисленными значениями и выводит результат прямо в терминал. Вы должны использовать пробел с каждым операндом, если вы хотите использовать команду « expr» для выполнения каких-либо математических операций. Создайте файл bash и добавьте различные команды ‘expr’ , чтобы проверить, как работает команда ‘expr’ .

#!/bin/bash

# Работает как строка
expr ’10 + 30 ‘

# Работает как строка
expr 10 + 30

# Выполнить сложение
expr 10 + 30

# Найти остаток
expr 30% 9

# Использование expr с обратной кавычкой
myVal1 = `expr 30/10`
echo $ myVal1

# Использование expr в команде replace
myVal2 = $ (expr 30-10)
echo $ myVal2

Запустить файл arith1.sh.

$ bash arith1.sh

Вывод:

Вывод показывает, что арифметические операторы работают только тогда, когда для каждого числового значения используется пробел, а с командой expr не используются одиночные кавычки. Вы также можете назначить вывод команды expr переменной и распечатать переменную позже, используя обратную кавычку или вместо команды. 30/10 рассчитывается с использованием обратной кавычки , а 30-10 рассчитывается с помощью команды . замените .

Пример — 2: Использование команды ‘let’

‘let’ — еще одна встроенная команда для выполнения арифметических операций в bash. Команда ‘let’ не может распечатать вывод на терминал без сохранения значения в переменной. Но команду ‘let’ можно использовать для снятия других ограничений команды ‘expr’ . Создайте файл bash и добавьте следующий код, чтобы увидеть, как работает команда ‘let’ ..

#!/bin/bash

# Умножение 9 на 8
let val1 = 9 * 3
echo $ val1

# Деление 8 на 3
let «val2 = 8/3»
echo $ val2

# Вычитание 3 из 9
let val3 = 9-3
echo $ val3

# Применение приращения
let val4 = 7
let val4 ++
echo $ val4

# Использование значения аргумента в арифметической операции
let «val5 = 50 + $ 1»
echo $ val5

Запустить файл arith2.sh.

$ bash arith2.sh

Вывод:

Вывод показывает, что команда ‘let’ более гибкая, чем ‘ expr ‘команда. Вы можете оценивать любое арифметическое выражение с кавычками или без них. Но вы не можете использовать пробел в математических выражениях. Вы можете использовать оператор увеличения или уменьшения в команде ‘let’ . Как арифметическая операция может быть выполнена со значениями аргументов с помощью команды ‘let’ , показано в последней части примера.

Вы можете выполнять любые арифметические операции в bash без использования каких-либо команд. Здесь двойные скобки используются для выполнения арифметических задач, а использование двойных скобок для выполнения математических выражений более гибкое, чем такие команды, как ‘expr’ или ‘let’ . Создайте файл bash и добавьте следующий код для проверки арифметических операций с использованием двойных скобок.

#!/Bin/bash

# Вычислить математическое выражение
val1 = $ ((10 * 5 + 15))
echo $ val1

# Использование оператора увеличения/уменьшения после или до операции
((val1 ++))
echo $ val1
val2 = 41
((- val2))
echo $ val2

# Использование сокращенного оператора
((val2 + = 60))
echo $ val2

# Деление 40 на 6
( (val3 = 40/6))
echo $ val3

Запустить файл arith3.sh.

$ bash arith3.sh

Вывод:

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

Пример — 4: Использование команды ‘bc’ для чисел с плавающей запятой или двойных чисел

Один из m Основное ограничение вышеупомянутых способов выполнения арифметических операций в bash заключается в том, что ‘ expr ‘ или ‘let’ или двойные скобки Выражение не может производить числа с плавающей запятой или двойные числа. Результатом операций деления в приведенных выше примерах являются целые числа. Для решения этой проблемы можно использовать команду ‘bc’ , которая работает как базовый калькулятор для операционной системы Linux.. Создайте файл bash и добавьте следующий код, чтобы проверить использование команды ‘bc’ в арифметических операциях.

#!/Bin/ bash

# Деление 55 на 3 только с помощью bc
echo «55/3» | bc

# Деление 55 на 3 с помощью опции bc и -l
echo «55/3» | bc -l

# Деление 55 на 3 с помощью bc и значения масштаба
echo «scale = 2; 55/3» | bc

Запустить файл arith3.sh.

$ bash arith4.sh

Вывод:

Вывод показывает, что простая команда ‘ bc ‘ выдает целочисленное значение, как и другие параметры, когда любое деление выражение выполнено. Команда ‘ bc -l’ генерирует точный результат деления, и вы можете ограничить дробную часть, используя значение scale . Здесь используется scale = 2 . Таким образом, в выходных данных после десятичной точки отображаются 2 цифры.

Вы можете применить любой из упомянутых способов выполнения арифметических операций в bash в зависимости от ваших требований.

Для получения дополнительной информации посмотрите видео!

Оцените статью
nanomode.ru
Добавить комментарий