Android

Как увеличить и уменьшить переменную в bash (счетчик)

"Bash-my-AWS: CLI commands for managing AWS resources" - Mike Bailey (LCA 2020)

"Bash-my-AWS: CLI commands for managing AWS resources" - Mike Bailey (LCA 2020)

Оглавление:

Anonim

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

Увеличение и уменьшение означает добавление или вычитание значения (обычно 1 ), соответственно, из значения числовой переменной. Арифметическое расширение может быть выполнено с использованием двойных скобок ((…)) и $((…)) или с помощью встроенной команды let .

В Bash есть несколько способов увеличить / уменьшить переменную. Эта статья объясняет некоторые из них.

Использование + и - операторов

Самый простой способ увеличить / уменьшить переменную - использовать операторы + и - .

i=$((i+1)) ((i=i+1)) let "i=i+1"

i=$((i-1)) ((i=i-1)) let "i=i-1"

Этот метод позволяет увеличивать / уменьшать переменную на любое значение, которое вы хотите.

Вот пример увеличения значения переменной в цикле:

i=0 until do echo i: $i ((i=i+1)) done

i: 0 i: 1 i: 2 i: 3

Операторы += и -=

В дополнение к базовым операторам, объясненным выше, bash также предоставляет операторы присваивания += и -= . Эти операторы используются для увеличения / уменьшения значения левого операнда на значение, указанное после оператора.

((i+=1)) let "i+=1"

((i-=1)) let "i-=1"

В следующем цикле while мы уменьшаем значение переменной i на 5 .

i=20 while do echo Number: $i let "i-=5" done

Number: 20 Number: 15 Number: 10 Number: 5

Использование операторов ++ и --

Операторы ++ и -- увеличивают и уменьшают соответственно свой операнд на 1 и возвращают значение.

((i++)) ((++i)) let "i++" let "++i"

((i--)) ((--i)) let "i--" let "--i"

Операторы могут использоваться до или после операнда. Они также известны как:

  • приращение префикса: ++i приставка префикса: --i приращение постфикса: i++ приставка постфикса: i--

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

Следующие примеры демонстрируют, как работает оператор ++ когда используется до и после его операнда:

x=5 y=$((x++)) echo x: $x echo y: $y

x: 6 y: 5

x=5 y=$((++x)) echo x: $x echo y: $y

x: 6 y: 6

Ниже приведен пример использования постфиксного инкрементора в скрипте bash:

#!/bin/bash i=0 while true; do if]; then exit 1 fi echo i: $i ((i++)) done

Недостатком использования этих операторов является то, что переменная может быть увеличена или уменьшена только на 1 .

Вывод

Увеличение и уменьшение переменных в Bash может выполняться различными способами. Какой бы метод вы ни использовали, результат будет одинаковым.

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

терминал петли bash