Краткое введение в программирование на Bash | страница 11
>#!/bin/bash
>echo “I am 'whoami'”[13]
Это только начало. Вы узнаете еще много чего интересного в заключительной части этой статьи[14]. А пока вы ее ждете - удачного вам написания скриптов...
Оригинал статьи Гарольда Родригеса
Для тех, кому невтерпеж, и кто считает, что справится с большим пособием: Advanced Bash-Scripting Guide (на русском)
Часть II
В второй статье Гарольд продолжает свое первоклассное введение в программирование на bash. На этот раз он объясняет, как выполнять арифметические операции и определять функции в bash-скриптах. Завершается статья введением в такие понятия как чтение пользовательского ввода, обработка скриптом аргументов, перехватывание сигналов и обработка кодов завершения программ.
Безусловно, результаты прочтения превзойдут все ожидания! После этой статьи вас уже нельзя будет назвать новичком. Ведь вы на пути к тому, чтоб называться мастером программирования на bash!
Арифметика и bash
Скриптовой язык bash позволяет выполнять арифметические операции. Как вы уже видели в предыдущей статье, арифметика выполняется с помощью команды expr. Однако, подобно команде true, этот вариант считается медленным. Причина кроется в том, что для использования true и expr оболочка должна предварительно запустить их. Лучше всего использовать встроенную в bash функцию, которая работает быстрее. Аналогично тому, что альтернативой true является команда":", альтернатива expr— заключение арифметического выражения в конструкцию вида$((...)). Будьте внимательны, она отличается от$(...). Отличие тут в количестве скобок. Так давайте же испробуем это:
>#!/bin/bash
>x=8 # присваиваем x значение 8
>y=4 # присваиваем y значение 4
># результат сложения x и y сохраняем в z:
>z=$(($x + $y))
>echo "Сумма $x и $y равна $z"
Как обычно, выбор используемого метода вычислений за вами. Если использование expr для вас более комфортно и привычнее, чем $((...)), используйте его.
Скриптовой язык bash умеет выполнять сложение, вычитание, умножение, целочисленное деление и получение остатка от деления. Каждое арифметическое действие имеет соответствующий ему оператор:
Действие | Оператор |
---|---|
Сложение | + |
Вычитание | - |
Умножение | * |
Целочисленное деление | / |
Остаток от деления | % |
Большинство из вас должно быть знакомо с первыми четырьмя операциями. Если вы не знаете, что такое деление по модулю, то это просто число равное остатку от деления одного целого числа на другое. Ниже приведен пример выполнения арифметических операций в bash: