Часто в сценарии Bash может потребоваться увеличить или уменьшить переменные. В основном это делается в циклах в качестве счетчика, но может быть сделано и в других местах. Существует несколько простых способов инкремента и декремента переменных в Bash -скрипте. Мы подробно рассмотрим их в этой статье.
Как увеличить и уменьшить переменную в сценарии оболочки
Вот различные способы увеличения и уменьшения переменных в сценарии оболочки. Это можно сделать с помощью двойной круглой скобки ((...)) или $((...)) или с помощью команды let.
Использование операторов + и -
Вы можете просто прибавить/вычесть дифференциальное значение для увеличения/уменьшения переменной, используя операторы +/-. Вот пример увеличения переменной shell.
1 2 3 | i=$((i+1)) ((i=i+1)) let "i=i+1" |
Приведем пример уменьшения переменной shell.
1 2 3 | i=$((i-1)) ((i=i-1)) let "i=i-1" |
Вы можете использовать эти операторы для увеличения/уменьшения переменных на любое нужное вам значение.
Вот простой пример использования этого оператора в цикле for.
1 2 3 4 | for((i=0;i<5;i=i+1)) do echo i: $i done |
Использование операторов += и -=
В этом выражении вы увеличиваете/уменьшаете значение левого операнда на значение правого операнда.
Вот пример увеличения переменной shell на 1.
1 2 | ((i+=1)) let "i+=1" |
Приведем пример уменьшения переменной shell на 1.
1 2 | ((i-=1)) let "i-=1" |
А вот пример использования в цикле for, где мы увеличиваем переменную shell на 2.
1 2 3 4 | for((i=0;i<10;i+=2)) do echo i: $i done |
Использование операторов ++ и -
Вы также можете использовать операторы ++ и - для увеличения и уменьшения значений соответственно. Но эти операторы будут увеличивать/уменьшать только на 1, в отличие от операторов выше. Вы можете использовать их как префиксные или постфиксные операторы, то есть добавлять их непосредственно перед или после оператора.
Вот пример увеличения переменной shell с помощью оператора ++.
1 2 | ((++i)) let "++i" |
1 2 | ((i++)) let "i++" |
Вот пример уменьшения переменной shell с помощью оператора -.
1 2 | ((--i)) let "--i" |
1 2 | ((i--)) let "i--" |
Основное различие между префиксными и постфиксными операторами заключается в том, что префиксные операторы сначала увеличивают/уменьшают значение и только потом возвращают обновленное значение, а постфиксные операторы увеличивают/уменьшают переменную после возвращения старого значения.
Вот пример, демонстрирующий разницу между префиксными и постфиксными операторами. Сначала рассмотрим префиксный оператор инкремента.
1 2 | i=0 echo $((++i)) |
Приведем пример, демонстрирующий использование постфиксного оператора инкремента.
1 2 | i=0 echo $((i++)) |
Заключение
В этой статье мы узнали, как увеличивать и уменьшать переменные Bash. Вы можете использовать эти операторы в соответствии с вашими требованиями.