GNU/Linux >> Tutoriels Linux >  >> Linux

Comment incrémenter et décrémenter une variable dans Bash (compteur)

L'une des opérations arithmétiques les plus courantes lors de l'écriture de scripts Bash consiste à incrémenter et décrémenter des variables. Ceci est le plus souvent utilisé dans les boucles comme compteur, mais cela peut également se produire ailleurs dans le script.

Incrémenter et décrémenter signifie ajouter ou soustraire une valeur (généralement 1 ), respectivement, à partir de la valeur d'une variable numérique. Le développement arithmétique peut être effectué à l'aide des doubles parenthèses ((...)) et $((...)) ou avec le let commande intégrée.

Dans Bash, il existe plusieurs façons d'incrémenter/décrémenter une variable. Cet article en explique quelques-uns.

Utilisation de + et - Opérateurs #

La façon la plus simple d'incrémenter/décrémenter une variable est d'utiliser le + et - opérateurs.

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

Cette méthode vous permet d'incrémenter/décrémenter la variable de la valeur de votre choix.

Voici un exemple d'incrémentation d'une variable dans un until boucle :

i=0

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

Le += et -= Opérateurs #

En plus des opérateurs de base expliqués ci-dessus, bash fournit également les opérateurs d'affectation += et -= . Ces opérateurs sont utilisés pour incrémenter/décrémenter la valeur de l'opérande de gauche avec la valeur spécifiée après l'opérateur.

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

Dans le while suivant boucle, on décrémente la valeur du i variable par 5 .

i=20

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

Utilisation du ++ et -- Opérateurs #

Le ++ et -- les opérateurs incrémentent et décrémentent, respectivement, son opérande de 1 et renvoie la valeur.

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

Les opérateurs peuvent être utilisés avant ou après l'opérande. Ils sont également connus sous le nom :

  • Incrément de préfixe :++i
  • décrémentation du préfixe :--i
  • incrément de suffixe :i++
  • décrémentation suffixe :i--

Les opérateurs de préfixe incrémentent/décrémentent d'abord les opérateurs de 1 puis renvoie la nouvelle valeur des opérateurs. D'autre part, les opérateurs postfix renvoient la valeur des opérateurs avant qu'elle n'ait été incrémentée/décrémentée.

Si vous souhaitez uniquement incrémenter/décrémenter la variable, il n'y a aucune différence si vous utilisez l'opérateur préfixe ou suffixe. Cela ne fait une différence que si le résultat des opérateurs est utilisé dans une autre opération ou affecté à une autre variable.

Les exemples suivants montrent comment le ++ l'opérateur fonctionne lorsqu'il est utilisé avant et après son opérant :

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

Vous trouverez ci-dessous un exemple d'utilisation de l'incrémenteur postfixé dans un script bash :

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

L'inconvénient d'utiliser ces opérateurs est que la variable ne peut être incrémentée ou décrémentée que de 1 .

Conclusion #

L'incrémentation et la décrémentation des variables dans Bash peuvent être effectuées de différentes manières. Quelle que soit la méthode utilisée, le résultat est le même.

Si vous avez des questions ou des commentaires, n'hésitez pas à laisser un commentaire.


Linux
  1. Comment programmer avec Bash :syntaxe et outils

  2. Variables d'environnement Linux :comment lire et définir sur un VPS Linux

  3. Comment créer et appeler des fonctions dans Bash

  4. Exporter une variable de bash et l'utiliser en Python

  5. Comment supprimer la variable readonly dans bash ?

Comment utiliser la commande Bash let {avec exemples}

Variable d'exportation bash

Bash printf - Comment imprimer une variable dans Bash

Comment utiliser les opérateurs de test de fichiers Bash sous Linux

Comment définir une variable d'environnement dans Bash

Comment effacer l'historique de Bash sous Linux et Mac