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

Счетчик Bash

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

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

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

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

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

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

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

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

 i = 0 until [ $i -gt 3 ] 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 [ $i -ge 5 ] 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 [[ " $i " -gt 3 ]] ; then exit 1 fi echo i: $i (( i++ )) done

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

Заключение

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

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

терминал цикла bash

Связанные руководства

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *