Software

Rekenen in Bash

Schrijver: Louise Ward
Datum Van Creatie: 3 Februari 2021
Updatedatum: 15 Kunnen 2024
Anonim
Adventures  In BASH: WEATHER PRGM | Kumputer Kar
Video: Adventures In BASH: WEATHER PRGM | Kumputer Kar

Inhoud

Berekeningen toevoegen aan een basisscript

Hoewel Bash een scripttaal is, heeft het vrijwel alle mogelijkheden van een programmeertaal voor algemeen gebruik. Dit omvat rekenkundige functies. 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)

berekent 4 keer 1024 en wijst het resultaat toe aan de variabele "m".

U kunt het resultaat afdrukken door een echo uitspraak:

echo $ m

U kunt ook een bestand maken met de Bash-opdrachten, in welk geval u bovenaan het bestand een regel moet toevoegen die het programma specificeert dat de code moet uitvoeren. Bijvoorbeeld:


#! / bin / bash

ervan uitgaande dat het uitvoerbare bestand van Bash zich in bevindt / bin / bash. Je moet ook de permissies van je scriptbestand instellen zodat het uitvoerbaar is. Ervan uitgaande dat de naam van het scriptbestand is script1.shkunt u de machtigingen instellen om het bestand uitvoerbaar te maken met de opdracht:

chmod + x script1.sh

Daarna kun je het uitvoeren met de opdracht:

./script1.sh

De beschikbare rekenkundige bewerkingen zijn vergelijkbaar met die in standaard programmeertalen zoals Java en C. Naast vermenigvuldiging, zoals hierboven geïllustreerd, gebruikt u toevoeging:

laat m = (5 + 5)

of aftrekken:

laat m = (10-2)

of divisie:

laat m = (10/2)

of modulo (de rest na een gehele deling):

laat m = (11/2)

Wanneer een bewerking wordt toegepast op dezelfde variabele waaraan het resultaat is toegewezen, kunt u de standaard rekenkundige steno-toewijzingsoperatoren gebruiken, ook wel samengestelde-toewijzingsoperatoren genoemd. Zo hebben we bijvoorbeeld:


((m + = 15))

wat overeenkomt met "m = m + 15". Voor aftrekken hebben we:

((m- = 3))

wat overeenkomt met "m = m - 3". Voor divisie hebben we:

((m / = 5))

wat overeenkomt met "m = m / 5". En voor modulo hebben we:

((m% = 10))

wat overeenkomt met "m = m% 10".

Bovendien kunt u de gebruiken verhoging en afname operators:

((m ++))

komt overeen met "m = m + 1". En

((m--))

komt overeen met "m = m - 1".

Drijvende-kommaberekening in Bash

De laat operator werkt alleen voor integer rekenen. Voor drijvende-kommaberekeningen kunt u bijvoorbeeld de GNU bc-calculator gebruiken, zoals geïllustreerd in dit voorbeeld:

echo 32.0 + 1.4 | bc

De "pipe" operator "|" geeft de rekenkundige uitdrukking "32.0 + 1.4" door aan de bc-calculator, die het reële getal retourneert. De echo-opdracht drukt het resultaat af naar de standaarduitvoer.


Alternatieve syntaxis voor rekenen

Backticks (enkele aanhalingstekens terug) kunnen worden gebruikt om een ​​rekenkundige uitdrukking te evalueren, zoals in dit voorbeeld:

echo `expr $ m + 18`

Dit voegt 18 toe aan de waarde van de variabele "m" en drukt het resultaat af.

Om de rekenwaarde aan een variabele toe te wijzen, kunt u het gelijkteken gebruiken zonder spaties eromheen:

m = `expr $ m + 18`

Een andere manier om rekenkundige uitdrukkingen te evalueren, is door dubbele haakjes te gebruiken. Bijvoorbeeld:

((m * = 4))

Dit verviervoudigt de waarde van de variabele "m".

Naast rekenkundige evaluatie biedt de Bash-shell andere programmeerconstructies, zoals for-loops, while-loops, conditionals en functies en subroutines.

Onze Publicaties

Sovjet-

Top-berichtenapps met chatrooms
Internet

Top-berichtenapps met chatrooms

Ouder:Informeer uzelf en kinderen altijd over de gevaren van online kinderroofdieren. Leer hoe u de activiteiten van uw kind online kunt volgen (ook op martphone!), De toegang tot webite blokkeert of...
iOS 12: wat u moet weten
Tehnologies

iOS 12: wat u moet weten

Hoewel iO 12 niet revolutionair i in termen van wat het toevoegt, i het weer een olide verbetering van ' wereld bete mobiele beturingyteem en biedt het veel nuttige nieuwe functie. Van beter meld...