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

12 set 2022 2 min di lettura
Как увеличить и уменьшить значение переменной в Bash (счетчик)
Indice dei contenuti

Введение

Одной из наиболее распространенных арифметических операций при написании сценариев 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 можно выполнять разными способами. Какой бы метод вы ни использовали, результат будет одинаковым.

Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.