Skip to content

Berekeningen toevoegen aan een bash-script

10 de juli de 2021
GettyImages 922708902 5bc77b6246e0fb00262a9efb

Wat te weten

  • Gebruik de laat commando om de rekenkundige evaluatie van een uitdrukking te produceren, zoals in laat m=(4 * 1024).
  • Beschikbare rekenkundige bewerkingen zijn vergelijkbaar met die in standaard programmeertalen zoals Java en C.
  • De let-operator werkt alleen voor rekenen met gehele getallen. Gebruik voor het rekenen met drijvende komma de GNU bc-rekenmachine.

Hoewel Bash een scripttaal is, heeft het de meeste mogelijkheden van een algemene programmeertaal. Dit omvat rekenkundige functies. Hier leest u hoe u berekeningen aan een bash-script kunt toevoegen.

Berekeningen toevoegen aan een bash-script

Er zijn een aantal syntaxisopties die u kunt gebruiken om een ​​rekenkundige evaluatie van een uitdrukking op te roepen. Misschien wel de meest leesbare is de laat opdracht. Bijvoorbeeld: laat m=(4 * 1024)

class=”ql-syntax”> berekent 4 keer 1024 en wijst het resultaat toe aan de variabele “m”. U kunt het resultaat afdrukken door een toe te voegen echo verklaring: echo $m

class=”ql-syntax”> Je kunt ook een bestand maken met de Bash-commando’s. In dat geval moet je een regel bovenaan het bestand toevoegen die het programma specificeert dat de code moet uitvoeren. Bijvoorbeeld: #! /bin/bash

class=”ql-syntax”> ervan uitgaande dat het uitvoerbare bestand van Bash zich in . bevindt /bin/bash. U moet ook de machtigingen van uw scriptbestand instellen zodat het uitvoerbaar is. Ervan uitgaande dat de naam van het scriptbestand is script1.sh, kunt u de machtigingen instellen om het bestand uitvoerbaar te maken met het commando: chmod +x script1.sh

class=”ql-syntax”> Daarna kun je het uitvoeren met het commando: ./script1.sh

class=”ql-syntax”> De beschikbare rekenkundige bewerkingen zijn vergelijkbaar met die in standaard programmeertalen zoals Java en C. Naast vermenigvuldigen, zoals hierboven geïllustreerd, gebruik je optellen: let m=(5 + 5)

class=”ql-syntax”> of aftrekken: let m=(10 – 2)

class=”ql-syntax”> of divisie: let m=(10/2)

class=”ql-syntax”> of modulo (de rest na een integer deling): let m=(11/2)

class=”ql-syntax”> Wanneer een bewerking wordt toegepast op dezelfde variabele waaraan het resultaat is toegewezen, kunt u de standaard rekenkundige verkorte toewijzingsoperatoren gebruiken, ook wel samengestelde toewijzingsoperatoren genoemd. Voor optellen hebben we bijvoorbeeld: (( m+=15 ))

class=”ql-syntax”> wat gelijk is aan “m = m + 15”. Voor aftrekken hebben we: (( m-=3 ))

class=”ql-syntax”> wat gelijk is aan “m = m – 3”. Voor deling hebben we: (( m/=5))

class=”ql-syntax”> wat gelijk is aan “m = m / 5”. En voor modulo hebben we: (( m%=10 ))

class=”ql-syntax”> wat gelijk is aan “m = m % 10”. Daarnaast kunt u de increment en verlagen operatoren: (( m++ ))

class=”ql-syntax”> is gelijk aan “m = m + 1”. En M– ))

class=”ql-syntax”> is gelijk aan “m = m – 1”.

Rekenen met drijvende komma in Bash

De laat operator werkt alleen voor rekenen met gehele getallen. Voor drijvende-kommaberekeningen kunt u bijvoorbeeld de GNU bc-calculator gebruiken, zoals geïllustreerd in dit voorbeeld: echo 32.0+1.4 | bc

De “pijp”-operator “|” geeft de rekenkundige uitdrukking “32.0 + 1.4” door aan de bc-rekenmachine, die het reële getal retourneert. Het echo-commando drukt het resultaat af naar de standaarduitvoer.

Alternatieve syntaxis voor rekenen

Backticks (achter enkele aanhalingstekens) kunnen worden gebruikt om een ​​rekenkundige uitdrukking te evalueren, zoals in dit voorbeeld: echo `expr $m + 18`

class=”ql-syntax”> Dit voegt 18 toe aan de waarde van de variabele “m” en drukt het resultaat af. Om de rekenwaarde aan een variabele toe te kennen, kunt u het gelijkteken gebruiken zonder spaties eromheen: m=`expr $m + 18`

class=”ql-syntax”> Een andere manier om rekenkundige uitdrukkingen te evalueren is door dubbele haakjes te gebruiken. Bijvoorbeeld: (( m*=4 ))

class=”ql-syntax”> Dit zal de waarde van de variabele “m” verviervoudigen. Naast rekenkundige evaluatie biedt de Bash-shell andere programmeerconstructies, zoals for-loops, while-loops, conditionals, en functies en subroutines.