GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo incrementar y decrementar una variable en Bash (Contador)

Una de las operaciones aritméticas más comunes cuando se escriben scripts de Bash es incrementar y decrementar variables. Esto se usa con mayor frecuencia en los bucles como un 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 realizar usando los paréntesis dobles ((...)) y $((...)) o con let comando integrado.

En Bash, hay múltiples formas de incrementar/decrementar una variable. Este artículo explica algunos de ellos.

Usando + y - Operadores #

La forma más sencilla de incrementar/decrementar una variable es usando el + y - operadores.

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/disminuir la variable por cualquier valor que desee.

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

i=0

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

El += y -= Operadores #

Además de los operadores básicos explicados anteriormente, bash también proporciona los operadores de asignación += y -= . Estos operadores se usan para incrementar/decrementar 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 siguiente while loop, estamos decrementando el valor de la i variable por 5 .

i=20

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

Usando el ++ y -- Operadores #

El ++ y -- los operadores incrementan y decrementan, respectivamente, su operando en 1 y devolver el valor.

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

Los operadores pueden usarse antes o después del operando. También se les conoce como:

  • incremento de prefijo:++i
  • decremento de prefijo:--i
  • incremento de postfijo:i++
  • decremento postfijo:i--

Los operadores de prefijo primero incrementan/decrementan los operadores en 1 y luego devolver 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/decrementar la variable, entonces no hay diferencia si usa el operador de prefijo o sufijo. Hace una diferencia solo si el resultado de los operadores se usa en alguna otra operación o se asigna a otra variable.

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

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 incrementador 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 puede incrementarse o decrementarse en 1 .

Conclusión #

Las variables incrementales y decrecientes en Bash se pueden realizar de muchas maneras diferentes. Sea cual sea el método que utilice, el resultado es el mismo.

Si tiene alguna pregunta o comentario, no dude en dejar un comentario.


Linux
  1. Cómo crear y llamar funciones en Bash

  2. ¿Cómo pruebo si una variable es un número en Bash?

  3. ¿Cómo hacer un incremento atómico y buscar en C?

  4. El incremento del contador en el bucle Bash no funciona

  5. Exportar una variable desde bash y usarla en Python

Cómo usar el comando Bash let {con ejemplos}

Variable de exportación de bash

Bash printf - Cómo imprimir una variable en Bash

Cómo usar operadores de prueba de archivos Bash en Linux

Cómo establecer la variable de entorno en Bash

Cómo borrar el historial de Bash en Linux y Mac