Android

Hoe de variabele in bash te verhogen en te verlagen (teller)

Command Substitution: Can you return data instead of exit codes in Bash? | #3 Practical Bash

Command Substitution: Can you return data instead of exit codes in Bash? | #3 Practical Bash

Inhoudsopgave:

Anonim

Een van de meest voorkomende rekenkundige bewerkingen bij het schrijven van Bash-scripts is oplopende en afnemende variabelen. Dit wordt meestal in lussen als teller gebruikt, maar het kan ook elders in het script voorkomen.

Verhogen en verlagen betekent een waarde (meestal 1 ) optellen of aftrekken van de waarde van een numerieke variabele. De rekenkundige uitbreiding kan worden uitgevoerd met behulp van dubbele haakjes ((…)) en $((…)) of met de opdracht let builtin.

In Bash zijn er meerdere manieren om een ​​variabele te verhogen / verlagen. In dit artikel worden enkele ervan uitgelegd.

Gebruik van + en - operators

De eenvoudigste manier om een ​​variabele te verhogen / verlagen is met de operatoren + en - .

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

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

Met deze methode kunt u de variabele met elke gewenste waarde verhogen / verlagen.

Hier is een voorbeeld van het ophogen van een variabele binnen een until lus:

i=0 until do echo i: $i ((i=i+1)) done

i: 0 i: 1 i: 2 i: 3

De operatoren += en -=

Naast de basisoperatoren die hierboven zijn uitgelegd, biedt bash ook de toewijzingsoperatoren += en -= . Deze operatoren worden gebruikt om de waarde van de linkeroperand te verhogen / verlagen met de waarde die achter de operator is opgegeven.

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

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

In de volgende while lus verlagen we de waarde van de i variabele met 5 .

i=20 while do echo Number: $i let "i-=5" done

Number: 20 Number: 15 Number: 10 Number: 5

Gebruik van de operatoren ++ en --

De operatoren ++ en -- verhogen respectievelijk de operand met 1 en geven de waarde terug.

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

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

De operatoren kunnen vóór of na de operand worden gebruikt. Ze staan ​​ook bekend als:

  • voorvoegsel toename: ++i voorvoegsel afname: --i postfix toename: i++ postfix afname: i--

De prefixoperatoren verhogen / verlagen de operatoren eerst met 1 en retourneren vervolgens de nieuwe waarde van de operatoren. Aan de andere kant retourneren de postfix-operatoren de waarde van de operatoren voordat deze is verhoogd / verlaagd.

De volgende voorbeelden laten zien hoe de ++ -operator werkt wanneer deze voor en na de operant wordt gebruikt:

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

Hieronder ziet u een voorbeeld van het gebruik van de postfix-incrementor in een bash-script:

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

Het nadeel van het gebruik van deze operatoren is dat de variabele alleen met 1 kan worden verhoogd of verlaagd.

Conclusie

Toenemende en afnemende variabelen in Bash kunnen op veel verschillende manieren worden uitgevoerd. Welke methode u ook gebruikt, het resultaat is hetzelfde.

Als u vragen of feedback heeft, kunt u een reactie achterlaten.

bash lus terminal