Bash-scripts zijn handig voor het automatiseren van taken, en u zult merken dat ze geweldig zijn voor het bouwen van eenvoudige opdrachtregeltoepassingen. De Bash-shell interpreteert Bash-scripts, dus u hoeft geen afhankelijkheden te installeren om ze te schrijven en uit te voeren. Bash-scripts zijn ook draagbaar omdat de meeste op Unix gebaseerde besturingssystemen dezelfde shell-interpreter gebruiken.

Kennis van Bash-scripting is een must voor elke ontwikkelaar, zeker als je met Unix-gebaseerde systemen werkt.

Variabelen in Bash

Bash-variabelen Zijn hoofdlettergevoelig. Gebruik een isgelijkteken om variabelen te declareren (=) met de naam aan de linkerkant en de waarde aan de rechterkant:

STAAT=Washington

De waarde die deze declaratie toekent aan STAAT is een enkel woord. Als je spaties in je waarde nodig hebt, gebruik dan aanhalingstekens eromheen:

STATE="Noord-Arizona"

U moet een dollarteken gebruiken ($) prefix om te verwijzen naar variabelen in andere variabelen of instructies:

STAAT=Washington
LOCATION="Mijn locatie is $STAAT"

Waarden afdrukken in Bash

Er zijn verschillende manieren waarop u variabelen in Bash kunt afdrukken. U kunt de echo commando voor basisuitvoer of de C-stijl printf commando voor tekenreeksopmaak.

STAAT=Washington
LOCATION="Mijn locatie is $STAAT"
echo$LOCATIE

Na het verklaren van de STAAT variabele, dit script definieert PLAATS door te verwijzen naar STAAT. Als vervolgens echo wordt gebruikt om de uiteindelijke waarde van de LOCATION-variabele af te drukken.

De printf trefwoord kunt u opmaakwerkwoorden gebruiken om gegevens uit te voeren. De werkwoorden voor tekenreeksopmaak zijn vergelijkbaar met die in C en Go, maar met beperkte werkwoorden.

Werkwoord Functionaliteit
%c drukt enkele tekens af
%O drukt octadecimalen af
%s drukt strings af, onafhankelijk van de behuizing
%x drukt kleine letters hexadecimaal af
%X drukt hoofdletters hexadecimaal af
%d drukt gehele getallen af
%e drukt wetenschappelijke notie af in kleine letters
%E drukt wetenschappelijke notie af in hoofdletters
%f drukt drijvende-kommagetallen af
%% drukt een enkel percentagesymbool af.

Hier is een voorbeeld van het gebruik van een werkwoord met de afdrukken trefwoord.

STATE=Lagos
printf "Mijn locatie is %s" $STAAT

De printf functie zou de. vervangen STAAT variabel in de positie van de %s werkwoord, en de uitvoer zou zijn "Mijn locatie is Lagos".

U kunt opmerkingen maken in Bash met de hash of het pondje (#) symbool. De shell negeert automatisch opmerkingen.

#!/bin/bash
# STAAT=Washington
# LOCATION="Mijn locatie is $STATE"

Er zijn geen opmerkingen met meerdere regels. Bij de meeste IDE's en teksteditors kun je commentaar geven met de sneltoets Ctrl/Command + slash(/). U zou de snelkoppeling moeten kunnen gebruiken om meerdere opmerkingen van één regel te maken.

Gebruikersinvoer ontvangen in Bash

Net als veel andere programmeertalen, kunt u gebruikersinvoer in Bash ontvangen om uw programma's/scripts interactiever te maken. U kunt de lezen commando om de invoer van de gebruiker te vragen.

lezen antwoord

In dit geval is de antwoord variabele bevat de invoer van de gebruiker bij aflevering.

echo "Wat wil je?: "
lees reactie
echo $antwoord

Het invoerverzoek van de gebruiker staat op een nieuwe regel in het bovenstaande voorbeeld.

U kunt de. toevoegen -n vlag naar de echo print statement om de regel te behouden waar de gebruiker invoer invoert.

echo -n "Wat wil je."
lees reactie
echo $antwoord

Arrays declareren in Bash

Arrays in Bash zijn net als de meeste talen. U kunt een arrayvariabele declareren in Bash door de elementen tussen haakjes op te geven.

Landen=('VS' 'Rusland' 'Oekraïne', "Engeland", "Taiwan", "China")

Toegang tot een array via verwijzing naar de naam van de variabele zou het eerste element ophalen. U hebt toegang tot de hele array door het asterisk-teken als index te gebruiken.

echo ${Landen[*]}

U kunt ook de index van de array specificeren om toegang te krijgen tot een specifiek element. De index van een array begint bij nul.

echo "${Landen[4]}"

Voorwaardelijke verklaringen in Bash

Bash biedt voorwaarden voor besluitvorming in programma's.

Hier is de anatomie van een if-else-statement in Bash. U moet de puntkomma gebruiken om het einde van de voorwaarde op te geven.

als [[ voorwaarde ]]; dan
echo verklaring1
elif [[voorwaarde ]]; dan
echo verklaring2
anders [[voorwaarde ]]; dan
echo verklaring3
fi

Je moet elke. beëindigen als verklaring met de fi trefwoord.

als [ 1 == 2 ]; dan
echo een
elif [ 2 == 3 ]; dan#else-if
echo twee
anders [ 4 > 3 ];
echo "juist, 3"
fi

U kunt case-statements in uw Bash-programma's gebruiken met de geval trefwoord. U moet het patroon opgeven dat wordt gevolgd door haakjes te beëindigen vóór de instructie.

CITY=Lagos
geval$STADin
"Washington") # patroon
echo "Verenigde Staten van Amerika" # uitspraak
;; # einde van een zaak
"Lagos" | "Abuja")
echo "Nigeria"
;;
"Johannesburg" | "Kaapstad")
echo "Zuid-Afrika"
;;
*) # standaardpatroon
echo "Antarctica" # standaard statement
;;
esac# einde van de casusverklaring

U kunt het standaardgeval definiëren door het asterisk (*)-teken als patroon te gebruiken. Case statements moeten eindigen met de esac trefwoord.

Loops in Bash

Afhankelijk van uw behoeften, kunt u een while-lus, range for-loop of een C-stijl gebruiken for loop voor terugkerende bewerkingen.

Hier is een voorbeeld van de for-loop in C-stijl. For-lussen moeten eindigen met de gedaan trefwoord, en u moet het for-statement eindigen met een puntkomma gevolgd door de doen trefwoord.

voor ((a = 0; een < 10; a+2)); doen
echo$a
gedaan

Het bereik voor lus is handig voor het werken met bestanden en vele andere bewerkingen. U moet de gebruiken in trefwoord met het bereik for-loop.

voor i in {1..7}; doen
echo$1
gedaan

Hier is een eenvoudige oneindige lus om Bash te demonstreren terwijl lussen in actie.

naam=1
terwijl [ 1 -le 5 ] # terwijl 1 < 5
doen
echo$naam
gedaan

De -le in de voorwaarde-instructie is de binaire operator voor minder dan.

Functies in Bash

U hebt geen trefwoorden nodig om functies in Bash te declareren. U kunt functies declareren met de naam en vervolgens haakjes voor de hoofdtekst van de functie.

print_working_directory() {
echo$PWD#aanroepen van de PWD-opdracht vanuit het script
}
echo "Jij bent in $(print_working_directory)"

Functies kunnen variabelen retourneren in Bash. Alles wat je nodig hebt is de opbrengst trefwoord.

print_working_directory() {
opbrengst$PWD
}

De print_working_directory functie retourneert de werkmap van het bestand.

U kunt Shell-scripts in andere talen schrijven

Bash is niet de enige taal die u kunt gebruiken om te communiceren met de shell van uw besturingssysteem of om opdrachtregeltoepassingen te bouwen. Je kunt veel andere talen gebruiken, zoals Go, Python, Ruby en Rust.

Veel besturingssystemen hebben Python3 vooraf geïnstalleerd en Python is een veel voorkomende taal. Als je nog meer functionaliteit nodig hebt dan Bash-scripts kunnen bieden, overweeg dan om Python te gebruiken.