Android

Hur man ökar och minskar variabeln i bash (räknare)

Introduction to Bash Scripting 03 - Intro to Variables

Introduction to Bash Scripting 03 - Intro to Variables

Innehållsförteckning:

Anonim

En av de vanligaste aritmetiska operationerna när du skriver Bash-skript är stegvisa och minskade variabler. Detta används oftast i slingor som räknare, men det kan också förekomma någon annanstans i skriptet.

Inkrementering och minskning betyder att lägga till eller subtrahera ett värde (vanligtvis 1 ), respektive från en numerisk variabel. Den aritmetiska expansionen kan utföras med hjälp av de dubbla parenteserna ((…)) och $((…)) eller med kommandot let buildin.

I Bash finns det flera sätt att öka / minska en variabel. Den här artikeln förklarar några av dem.

Använda + och - operatörer

Det enklaste sättet att öka / minska en variabel är att använda + och - operatörerna.

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

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

Med denna metod kan du öka / minska variabeln med valfritt värde.

Här är ett exempel på att öka 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

+= Och -= operatörer

Förutom de grundläggande operatörerna som förklarats ovan, tillhandahåller bash också tilldelningsoperatörerna += och -= . Dessa operatörer används för att öka / minska värdet på den vänstra operand med det värde som anges efter operatören.

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

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

I följande while loopen minskar vi värdet på i variabeln med 5 .

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

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

Använda ++ och -- Operatörerna

++ och -- operatörerna ökar respektive minskning, dess operand med 1 och returnerar värdet.

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

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

Operatörerna kan användas före eller efter operand. De är också kända som:

  • prefix inkrement: ++i prefix decrement: --i postfix inkrement: i++ postfix decrement: i--

Prefixoperatörerna ökar / reducerar först operatörerna med 1 och sedan returnerar operatörernas nya värde. Å andra sidan returnerar operatörerna efter postfix värdet på operatörerna innan det har ökats / minskats.

Följande exempel visar hur operatören ++ fungerar när den används före och efter sin 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

Nedan följer ett exempel på hur du använder inkrementorn för postfix i ett bash-skript:

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

Nackdelen med att använda dessa operatörer är att variabeln endast kan ökas eller minskas med 1 .

Slutsats

Inkrementerings- och dekrementeringsvariabler i Bash kan utföras på många olika sätt. Oavsett metod du använder är resultatet samma.

Om du har några frågor eller feedback kan du lämna en kommentar.

bash loop terminal