Программное Обеспечение

Арифметика в Баш

Автор: Louise Ward
Дата создания: 3 Февраль 2021
Дата обновления: 15 Май 2024
Anonim
Инструкции Linux - #70 урок. Скрипты на bash: Арифметика
Видео: Инструкции Linux - #70 урок. Скрипты на bash: Арифметика

Содержание

Как добавить вычисления в скрипт Bash

Хотя Bash является языком сценариев, он обладает почти всеми возможностями языка программирования общего назначения. Это включает в себя арифметические функции. Есть несколько вариантов синтаксиса, которые вы можете использовать, чтобы вызвать арифметическую оценку выражения. Пожалуй, наиболее читаемым является позволять команда. Например:

пусть m = (4 * 1024)

вычислит 4 раза 1024 и присвоит результат переменной «m».

Вы можете распечатать результат, добавив эхо заявление:

эхо $ м

Вы также можете создать файл, содержащий команды Bash, и в этом случае вы должны добавить строку вверху файла, которая указывает программу, которая должна выполнять код. Например:


#! / Бен / Баш

при условии, что исполняемый файл Bash находится в / Бен / Баш, Вам также необходимо установить права доступа к файлу скрипта, чтобы он был исполняемым. Предполагая, что имя файла сценария script1.shВы можете установить права на выполнение файла с помощью команды:

chmod + x script1.sh

После этого вы можете выполнить его командой:

./script1.sh

Доступные арифметические операции аналогичны операциям в стандартных языках программирования, таких как Java и C. Помимо умножения, как показано выше, вы используете сложение:

пусть m = (5 + 5)

или вычитание:

пусть m = (10 - 2)

или деление:

пусть m = (10/2)

или по модулю (остаток после целочисленного деления):

пусть m = (11/2)

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


((m + = 15))

что эквивалентно "m = m + 15". Для вычитания имеем:

((м- = 3))

что эквивалентно "m = m - 3". Для деления имеем:

((м / = 5))

что эквивалентно "m = m / 5". А по модулю имеем:

((m% = 10))

что эквивалентно "m = m% 10".

Кроме того, вы можете использовать приращение и декремент операторы:

((м ++))

эквивалентно "m = m + 1". И

((м--))

эквивалентно "m = m - 1".

Арифметика с плавающей точкой в ​​Bash

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

эхо 32,0 + 1,4 | До нашей эры

«Трубный» оператор «|» передает арифметическое выражение "32.0 + 1.4" в калькулятор bc, который возвращает действительное число. Команда echo выводит результат на стандартный вывод.


Альтернативный синтаксис для арифметики

Обратные кавычки (обратные одинарные кавычки) можно использовать для вычисления арифметического выражения, как в этом примере:

echo `expr $ m + 18`

Это добавит 18 к значению переменной «m», а затем распечатает результат.

Чтобы присвоить вычисляемое значение переменной, вы можете использовать знак равенства без пробелов вокруг нее:

m = `expr $ m + 18`

Другой способ оценить арифметические выражения - использовать двойные скобки. Например:

((м * = 4))

Это увеличит в четыре раза значение переменной «m».

Помимо арифметической оценки, оболочка Bash предоставляет другие программные конструкции, такие как циклы for, циклы while, условные выражения, а также функции и подпрограммы.

Популярные публикации

Для вас

10 советов для безопасной покупки в Интернете
Интернет

10 советов для безопасной покупки в Интернете

Основы интернет-магазинов Заказ еды онлайн Лучшие способы сэкономить деньги в Интернете Удобные варианты покупок Отмена услуг, которые вам не нужны Покупаете ли вы праздничные распродажи или просто х...
Как включить приватный просмотр на вашем iPad
Tehnologies

Как включить приватный просмотр на вашем iPad

Режим приватного просмотра для iPad отключает историю веб-поиска в браузере afari. Когда вы закончите работу с afari и выйдете из личных вкладок, никто не сможет вернуться в браузер afari и посмотрет...