GNU/Linux >> Linux Esercitazione >  >> Linux

Come aumentare e diminuire la variabile in Bash (counter)

Una delle operazioni aritmetiche più comuni durante la scrittura di script Bash è l'incremento e il decremento delle variabili. Questo è spesso usato nei loop come contatore, ma può verificarsi anche altrove nello script.

Aumentare e decrementare significa aggiungere o sottrarre un valore (di solito 1 ), rispettivamente, dal valore di una variabile numerica. L'espansione aritmetica può essere eseguita utilizzando le doppie parentesi ((...)) e $((...)) o con il let comando integrato.

In Bash, ci sono diversi modi per incrementare/decrementare una variabile. Questo articolo ne spiega alcuni.

Utilizzo di + e - Operatori #

Il modo più semplice per incrementare/decrementare una variabile è usare il + e - operatori.

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

Questo metodo ti consente di incrementare/decrementare la variabile di qualsiasi valore desideri.

Ecco un esempio di incremento di una variabile all'interno di un until ciclo:

i=0

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

Il += e -= Operatori #

Oltre agli operatori di base spiegati sopra, bash fornisce anche gli operatori di assegnazione += e -= . Questi operatori vengono utilizzati per incrementare/decrementare il valore dell'operando sinistro con il valore specificato dopo l'operatore.

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

Di seguito while loop, stiamo decrementando il valore di i variabile per 5 .

i=20

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

Utilizzo di ++ e -- Operatori #

Il ++ e -- gli operatori incrementano e decrementano, rispettivamente, il suo operando di 1 e restituire il valore.

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

Gli operatori possono essere utilizzati prima o dopo l'operando. Sono anche conosciuti come:

  • incremento del prefisso:++i
  • decremento del prefisso:--i
  • incremento postfisso:i++
  • Decremento suffisso:i--

Gli operatori del prefisso prima incrementano/decrementano gli operatori di 1 e quindi restituire il nuovo valore degli operatori. D'altra parte, gli operatori suffisso restituiscono il valore degli operatori prima che sia stato incrementato/decrementato.

Se vuoi solo incrementare/decrementare la variabile, non c'è differenza se usi l'operatore prefisso o suffisso. Fa la differenza solo se il risultato degli operatori viene utilizzato in qualche altra operazione o assegnato a un'altra variabile.

Gli esempi seguenti mostrano come il ++ operatore funziona quando viene utilizzato prima e dopo il suo 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

Di seguito è riportato un esempio di come utilizzare il postfix incrementar in uno script bash:

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

Lo svantaggio dell'utilizzo di questi operatori è che la variabile può essere incrementata o decrementata solo di 1 .

Conclusione #

L'incremento e il decremento delle variabili in Bash possono essere eseguiti in molti modi diversi. Qualunque sia il metodo che utilizzi, il risultato è lo stesso.

Se hai domande o feedback, sentiti libero di lasciare un commento.


Linux
  1. C Esercitazione sulla riga di comando 6 - Rientro del codice, operatori di incremento/decremento, cicli do-while e for e altro

  2. Come posso verificare se una variabile è un numero in Bash?

  3. Come eseguire un incremento atomico e recuperare in C?

  4. L'incremento del contatore nel ciclo Bash non funziona

  5. Esporta una variabile da bash e usala in Python

Come utilizzare il comando Bash let {con esempi}

Variabile di esportazione Bash

Bash printf - Come stampare una variabile in Bash

Come utilizzare gli operatori di test di file Bash in Linux

Come impostare la variabile d'ambiente in Bash

Come cancellare la cronologia di Bash in Linux e Mac