Android

Sådan øges og nedbrydes variabel i bash (tæller)

Customizing Cloud9 and the CS50 IDE by Dan Armendariz

Customizing Cloud9 and the CS50 IDE by Dan Armendariz

Indholdsfortegnelse:

Anonim

En af de mest almindelige aritmetiske operationer, når du skriver Bash-scripts, er stigende og dekrementerende variabler. Dette bruges ofte i løkker som tæller, men det kan også forekomme andre steder i scriptet.

Inkrementering og dekrementering betyder tilføjelse eller subtraktion af en værdi (normalt 1 ) henholdsvis fra værdien af ​​en numerisk variabel. Den aritmetiske udvidelse kan udføres ved hjælp af de dobbelte parenteser ((…)) og $((…)) eller med den let indbyggede kommando.

I Bash er der flere måder at øge / nedskære en variabel på. Denne artikel forklarer nogle af dem.

Brug af + og - operatører

Den mest enkle måde at øge / reducere en variabel er ved at bruge + og - operatorerne.

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

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

Denne metode giver dig mulighed for at øge / nedbryde variablen med den ønskede værdi.

Her er et eksempel på stigning i en variabel i en until loop:

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

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

+= Og -= operatører

Foruden de basale operatører, der er beskrevet ovenfor, giver bash også tildelingsoperatørerne += og -= . Disse operatører bruges til at øge / reducere værdien af ​​den venstre operand med den værdi, der er angivet efter operatøren.

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

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

I det følgende while løkke dekrementerer vi værdien af i variablen med 5 .

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

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

Brug af ++ og -- Operatorerne

++ og -- operatørerne hhv. Stigning og dekrement er dens operand med 1 og returnerer værdien.

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

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

Operatørerne kan bruges før eller efter operand. De er også kendt som:

  • forhøjelse af præfiks: ++i --i : - i++ --i postfiks: i++ --i postfiks: --i

Præfiksoperatørerne øger / nedbryder først operatørerne med 1 og returnerer derefter den nye værdi af operatørerne. På den anden side returnerer postfix-operatørerne værdien af ​​operatørerne, før den er steget / dekrementeret.

Følgende eksempler viser, hvordan ++ -operatøren fungerer, når den bruges før og efter dens operant:

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 man bruger postfix-inkrementoren i et bash-script:

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

Ulempen ved at bruge disse operatører er, at variablen kun kan øges eller dekrementeres med 1 .

Konklusion

Trinvise og dekrementerende variabler i Bash kan udføres på mange forskellige måder. Uanset hvilken metode du bruger, er resultatet det samme.

Hvis du har spørgsmål eller feedback, er du velkommen til at give en kommentar.

bash loop terminal