Bash - это мощный способ автоматизации задач и запуска программ. Вы также можете оценивать выражения и выполнять вычисления в сценарии оболочки. Существует несколько способов оценить выражение в сценарии оболочки. Ниже описаны шаги, как это сделать в Linux.
Как выполнить расчет выражения в сценарии
Как и другие языки программирования, bash shell не имеет типов для переменных. По умолчанию каждая переменная является строкой. Вот пример, где мы объявляем переменную без каких-либо атрибутов.
1 2 | declare A=2+2 echo $A |
Результат
1 | 2+2 |
Как вы можете видеть выше, выражение '2+2' было обработано как строка, а не целое число. Если вы хотите, чтобы приведенная выше переменная интерпретировалась как целое арифметическое число, используйте атрибут -i.
1 2 | declare -i A=2+2 echo $A |
Результат
1 | 4 |
Обратите внимание, что даже в этом случае переменная $A является строкой. Просто, когда мы используем опцию -i, она будет разбирать выражения как целое число перед присвоением. Если произойдет ошибка синтаксического анализа, то дробная часть числа будет отброшена.
1 2 | A=test echo $A |
Результат
1 |
В качестве альтернативы можно использовать оператор let для объявления переменной и присвоения результата арифметической операции во время присваивания. Кроме того, вы можете присвоить ей не целое число, а что-то другое. Вот пример, в котором мы сначала присваиваем переменной значение выражения '2+2', а затем изменяем его на строку.
1 2 | let A=2+2 echo $A |
Результат
1 | 4 |
1 2 | A=test echo $A |
Результат:
1 | test |
Теперь мы рассмотрим некоторые способы доступа к этим переменным в Linux. Самый простой способ доступа к переменной - добавить $ в ее начало.
1 2 | A=2 echo $A |
Результат
1 | 2 |
Если вы хотите включить другую строку непосредственно перед или после значения переменной, вам нужно заключить переменную в ${...}. Вот пример.
1 | echo ${A}string |
Результат
1 | 2string |
Вместо прямой подстановки, если вы хотите оценить значение выражения, вы можете заключить выражение в $(...)
1 2 | A=2;B=2 echo $((A+B+1)) |
Результат
1 | 5 |
Вы также можете использовать команду expr, за которой следует выражение, подлежащее оценке.
1 | expr 2 + 3 |
результат:
1 | 5 |
1 | expr 2 \< 3 |
Результат
1 | 1 |
1 | expr substr abcdef 1 4 |
Результат
1 | abcd |
Обратите внимание, что в приведенной выше команде мы использовали обратную косую черту '\' для экранирования оператора '<'.
Заключение
В этой статье мы изучили несколько способов выполнить расчет выражения в Linux.