Cómo aumentar y disminuir el valor de las variables en Bash (contador)

1 mar 2021 2 min di lettura
Cómo aumentar y disminuir el valor de las variables en Bash (contador)
Indice dei contenuti

Introducción

Una de las operaciones aritméticas más comunes al escribir scripts Bash es incrementar y decrementar variables. Esto se usa a menudo en bucles como contador, pero también puede ocurrir en otras partes del script.

Incrementar y decrementar significa sumar o restar un valor (generalmente 1 ), respectivamente, del valor de una variable numérica. La expansión aritmética se puede hacer usando paréntesis dobles ((...)) y $((...)) o con el comando interno let

En Bash, hay varias formas de incrementar /disminuir una variable. Este artículo explica algunos de ellos.

Usando los operadores + y -

La forma más sencilla de incrementar /disminuir una variable es usando los operadores + y -

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

Este método le permite incrementar y disminuir la variable en cualquier valor deseado.

Aquí hay un ejemplo de cómo incrementar una variable dentro de un bucle until

i=0

 until [ $i -gt 3 ]
 do
 echo i: $i
 ((i=i+1))
 done
i: 0
 i: 1
 i: 2
 i: 3

Los operadores + = y - =

Además de los operadores básicos explicados anteriormente, bash también proporciona los operadores de asignación += y -= Estos operadores se utilizan para incrementar y disminuir el valor del operando izquierdo con el valor especificado después del operador.

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

En el while ciclo while estamos disminuyendo el valor de la variable i en 5.

i=20

 while [ $i -ge 5 ]
 do
 echo Number: $i
 let "i-=5"
 done
Number: 20
 Number: 15
 Number: 10
 Number: 5

Usando los operadores ++ y -

Los ++ y -- incrementan y reducen su operando en 1, respectivamente, y devuelven el valor.

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

Los operadores se pueden utilizar antes o después del operando. También se conocen como:

  • incremento de prefijo: ++i
  • disminución de prefijo: --i
  • incremento de sufijo: i++
  • disminución de sufijo: i--

Los operadores de prefijo primero aumentan /disminuyen los operadores en 1 y luego devuelven el nuevo valor de los operadores. Por otro lado, los operadores de sufijo devuelven el valor de los operadores antes de que se haya incrementado /decrementado.

Si solo desea incrementar /disminuir la variable, no hay diferencia entre usar el operador prefijo o sufijo. Solo hace una diferencia si el resultado de los operadores se usa en otra operación o se asigna a otra variable.

Los siguientes ejemplos muestran cómo funciona el ++ cuando se usa antes y después de su operador:

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

A continuación se muestra un ejemplo de cómo usar el incremento de postfijo en un script bash:

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

La desventaja de usar estos operadores es que la variable solo se puede incrementar o disminuir 1.

Conclusión

Las variables de incremento y decremento en Bash se pueden realizar de muchas formas diferentes. Cualquiera que sea el método que utilice, el resultado es el mismo.

Support us with a

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.