GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So erhöhen und verringern Sie die Variable in Bash (Zähler)

Eine der häufigsten arithmetischen Operationen beim Schreiben von Bash-Skripten ist das Inkrementieren und Dekrementieren von Variablen. Dies wird am häufigsten in Schleifen als Zähler verwendet, kann aber auch an anderer Stelle im Skript vorkommen.

Inkrementieren und Dekrementieren bedeutet, einen Wert zu addieren oder zu subtrahieren (normalerweise 1 ) bzw. vom Wert einer numerischen Variablen. Die arithmetische Erweiterung kann mit den doppelten Klammern ((...)) durchgeführt werden und $((...)) oder mit dem let eingebauter Befehl.

In Bash gibt es mehrere Möglichkeiten, eine Variable zu inkrementieren/dekrementieren. Dieser Artikel erklärt einige davon.

Mit + und - Operatoren #

Der einfachste Weg, eine Variable zu inkrementieren/dekrementieren, ist die Verwendung von + und - Betreiber.

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

Mit dieser Methode können Sie die Variable um jeden gewünschten Wert erhöhen/verringern.

Hier ist ein Beispiel für das Erhöhen einer Variablen innerhalb eines until Schleife:

i=0

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

Der += und -= Operatoren #

Zusätzlich zu den oben erläuterten Basisoperatoren bietet bash auch die Zuweisungsoperatoren += und -= . Diese Operatoren werden verwendet, um den Wert des linken Operanden um den hinter dem Operator angegebenen Wert zu inkrementieren/dekrementieren.

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

Im Folgenden while loop, dekrementieren wir den Wert von i Variable durch 5 .

i=20

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

Verwendung von ++ und -- Operatoren #

Der ++ und -- Operatoren erhöhen bzw. verringern ihren Operanden um 1 und den Wert zurückgeben.

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

Die Operatoren können vor oder nach dem Operanden verwendet werden. Sie sind auch bekannt als:

  • Präfixinkrement:++i
  • Präfix-Dekrement:--i
  • Postfix-Inkrement:i++
  • Postfix-Dekrement:i--

Die Präfixoperatoren inkrementieren/dekrementieren zuerst die Operatoren um 1 und dann den neuen Wert der Operatoren zurückgeben. Andererseits geben die Postfix-Operatoren den Wert des Operators zurück, bevor er erhöht/erniedrigt wurde.

Wenn Sie die Variable nur inkrementieren/dekrementieren möchten, gibt es keinen Unterschied, ob Sie den Präfix- oder Postfix-Operator verwenden. Es macht nur einen Unterschied, ob das Ergebnis der Operatoren in einer anderen Operation verwendet oder einer anderen Variablen zugewiesen wird.

Die folgenden Beispiele zeigen, wie der ++ Der Operator funktioniert, wenn er vor und nach seinem Operanten verwendet wird:

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

Unten sehen Sie ein Beispiel für die Verwendung des Postfix-Inkrementors in einem Bash-Skript:

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

Der Nachteil bei der Verwendung dieser Operatoren ist, dass die Variable nur um 1 erhöht oder verringert werden kann .

Schlussfolgerung #

Das Inkrementieren und Dekrementieren von Variablen in Bash kann auf viele verschiedene Arten durchgeführt werden. Welche Methode Sie auch verwenden, das Ergebnis ist dasselbe.

Wenn Sie Fragen oder Feedback haben, können Sie gerne einen Kommentar hinterlassen.


Linux
  1. So passen Sie Bash-Farben und -Inhalte in der Linux-Terminal-Eingabeaufforderung an

  2. Linux-Umgebungsvariablen:Lesen und Festlegen auf einem Linux-VPS

  3. C-Befehlszeilen-Tutorial 6 - Codeeinrückung, Inkrement-/Dekrement-Operatoren, do-while- und for-Schleifen und mehr

  4. So erstellen und rufen Sie Funktionen in Bash auf

  5. Wie teste ich, ob eine Variable in Bash eine Zahl ist?

So verwenden Sie den Bash-Let-Befehl {mit Beispielen}

Bash-Exportvariable

Bash printf - So drucken Sie eine Variable in Bash

So verwenden Sie Bash-Dateitestoperatoren in Linux

So setzen Sie die Umgebungsvariable in Bash

So löschen Sie den Bash-Verlauf in Linux und Mac