Android

Hvordan øke og redusere variabelen i bash (teller)

cURL - The only HTTP client you'll ever need | Practical Bash & Terminal #9

cURL - The only HTTP client you'll ever need | Practical Bash & Terminal #9

Innholdsfortegnelse:

Anonim

En av de vanligste aritmetiske operasjonene når du skriver Bash-skript, er inkrementering og dekrementering av variabler. Dette brukes ofte i løkker som teller, men det kan forekomme andre steder i skriptet.

Økning og reduksjon betyr å legge til eller trekke fra en verdi (vanligvis 1 ) fra verdien av en numerisk variabel. Den aritmetiske ekspansjonen kan utføres ved å bruke de doble parentesene ((…)) og $((…)) eller med den innebygde kommandoen.

I Bash er det flere måter å øke / dekrementere en variabel. Denne artikkelen forklarer noen av dem.

Bruke + og - operatører

Den enkleste måten å øke / dekrementere en variabel er ved å bruke + og - operatørene.

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

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

Denne metoden lar deg øke / dekrementere variabelen med hvilken verdi du ønsker.

Her er et eksempel på å øke en variabel i en until sløyfe:

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

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

+= Og -= operatører

I tillegg til de grunnleggende operatørene som er forklart ovenfor, gir bash også oppdragsoperatørene += og -= . Disse operatørene brukes til å øke / redusere verdien til venstre operand med verdien spesifisert etter operatøren.

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

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

I det følgende while sløyfen reduserer vi verdien av i variabelen med 5 .

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

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

Bruke ++ og -- Operatorene

++ og -- operatørene hhv. Økning og reduksjon, dens operand med 1 og returnerer verdien.

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

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

Operatørene kan brukes før eller etter operand. De er også kjent som:

  • prefiksøkning: ++i prefiksdekrement: --i postfiksøkning: i++ postfiksdekrement: i--

Prefikset operatører øker / reduserer operatørene først med 1 og returnerer deretter den nye verdien til operatørene. På den annen side returnerer postfiksoperatørene verdien til operatørene før den er økt / dekrementert.

Følgende eksempler viser hvordan ++ operatøren fungerer når den brukes før og etter operanten:

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

Nedenfor er et eksempel på hvordan du bruker postfix-inkrementoren i et bash-skript:

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

Ulempen med å bruke disse operatørene er at variabelen bare kan økes eller dekrementeres med 1 .

Konklusjon

Trinnvise og dekrementerende variabler i Bash kan utføres på mange forskjellige måter. Uansett hvilken metode du bruker, er resultatet det samme.

Hvis du har spørsmål eller tilbakemeldinger, kan du gjerne legge igjen en kommentar.

bash loop terminal