Vereisten
Voordat je deze tutorial volgt, raad ik aan om het volgende te hebben:
- Een Unix-gebaseerd besturingssysteem (Linux of macOS), of Windows met Git Bash of Windows Subsystem for Linux (WSL) geïnstalleerd
- Basiskennis van navigeren in de terminal (een terminal openen, bestanden weergeven met
ls, mappen wisselen metcd) - Een teksteditor zoals nano, vim of VS Code om scripts te schrijven
Hoe schrijf je een bash-script
We gaan een eenvoudig “Hello World”-bash-scriptexample maken om je op weg te helpen met bash-scripting. Wil je dieper duiken in bash-scripting, bekijk dan de cursus Introduction to Bash Scripting.
Stap 1: Maak een nieuw platte-tekstbestand
De eerste stap is het maken van een nieuw platte-tekstbestand met een .sh-extensie. Voer op Linux of macOS het volgende uit in je terminal:
touch hello_world.shOp Windows kun je Git Bash of Windows Subsystem for Linux (WSL) gebruiken — beide ondersteunen hetzelfde touch-commando. Of maak het bestand in een willekeurige teksteditor (VS Code, Kladblok, nano) en sla het op met de .sh-extensie.
Stap 2: De interpreter opgeven
Op de eerste regel van ons script moeten we aangeven welke interpreter we willen gebruiken om ons script te parseren. In dit geval is dat Bash. Daarom moet de shebang op de eerste regel van ons script staan.
#!/bin/bashStap 3: Opdrachten implementeren
Het doel van ons bash-script is om “Hello World!” af te drukken. Om deze taak uit te voeren, ga je naar een nieuwe regel en gebruik je het echo-commando, gevolgd door de string die we willen afdrukken.
echo "Hello World!" Sla, zodra je klaar bent, het bestand op en open je Git Bash.
Opmerking: Je kunt Git Bash downloaden via Git downloads. Selecteer simpelweg de versie van Git die overeenkomt met jouw besturingssysteem.
Voer vervolgens het volgende commando uit:
bash hello_world.shDit zou “Hello World!” moeten afdrukken, zoals te zien in Figuur 1.

Figuur 1: De uitvoer van ons Bash-script
Stap 4: Maak het script uitvoerbaar
In plaats van scripts altijd te laten voorafgaan door het commando bash, kun je een script direct uitvoerbaar maken met chmod:
chmod +x hello_world.sh
./hello_world.shHet commando chmod +x verleent uitvoerrechten aan het bestand. De prefix ./ vertelt de shell dat het script vanuit de huidige map moet worden uitgevoerd. Dit is de standaardmanier om bash-scripts in productie te verspreiden en uit te voeren — de meeste scripts die je tegenkomt, worden zo gedraaid.
Gebruikersinvoer vastleggen in bash-scripts
Nu weet je hoe je een eenvoudig “Hello World!”-script schrijft. Laten we bekijken hoe we bash kunnen gebruiken om scripts te schrijven die invoer van de gebruiker vereisen. In dit voorbeeld maken we een activiteiten-generator, die de gebruiker om zijn of haar naam vraagt en vervolgens willekeurig een activiteit kiest uit een array met activiteiten om de gebruiker voor uit te nodigen.
De stappen om het bestand te maken zijn hetzelfde als in Hoe schrijf je een bash-script – het verschil zit in de opdrachten die we in ons bash-script invoeren.
- Maak een nieuw platte-tekstbestand vanuit de terminal.
touch generate-activity.sh- Geef de bash-interpreter op door de shebang op de eerste regel van het script te zetten.
#!/bin/bash- Schrijf de opdrachten om het script uit te voeren en sla het bestand op.
Wanneer we ons bash-script nu vanuit de terminal aanroepen, zouden we dezelfde uitvoer moeten zien als in Figuur 2.
#!/bin/bash
# Greet user and request their name
echo "The activity generator"
read -p "What is your name? " name
# Create an array of activities
activity[0]="Football"
activity[1]="Table Tennis"
activity[2]="8 Ball Pool"
activity[3]="PS5"
activity[4]="Blackjack"
array_length=${#activity[@]} # Store the length of the array
index=$(($RANDOM % $array_length)) # Randomly select an index from 0 to array_length
# Invite the user to join you participate in an activity
echo "Hi" $name, "would you like to play" ${activity[$index]}"?"
read -p "Answer: " answer
Figuur 2: Demonstratie van het script generate-activity.sh.
Werken met variabelen in bash-scripts
Variabelen slaan data op die je in een script kunt refereren en hergebruiken. Definieer een variabele door een waarde toe te wijzen zonder spaties rond het =-teken. Benader de waarde door de naam te laten voorafgaan door $:
#!/bin/bash
# Define variables
greeting="Hello"
user_name="Alice"
current_year=$(date +%Y) # Command substitution
# Use variables
echo "$greeting, $user_name!"
echo "The current year is $current_year."Belangrijke regels voor bash-variabelen:
- Variabelenamen zijn hoofdlettergevoelig:
nameenNAMEzijn verschillende variabelen - Er zijn geen spaties toegestaan rond het
=-teken bij het toewijzen van een waarde - Gebruik
$(command)voor command substitution om de uitvoer van een commando in een variabele op te slaan - Zet variabelen tussen dubbele aanhalingstekens (
"$var") om veilig waarden met spaties te verwerken
Hoe maak je een functie in een bash-script
In de programmering bundel je met functies een set herhaalde instructies – leer meer over functies in Python. Het doel van functies schrijven is om te voorkomen dat je steeds dezelfde code typt, en het maakt je code ook leesbaarder.
Een bash-functie kun je zien als een typische functie: een set opdrachten die meerdere keren kan worden aangeroepen. Bash-functies zijn echter iets beperkter dan in de meeste programmeertalen (bijv. bash-functies laten je geen waarde retourneren bij aanroep).
Voordat we een bash-script met een functie maken, bekijken we de syntax voor het declareren van een bash-functie. We kunnen een functie definiëren door een functienaam te schrijven, gevolgd door ronde haken en accolades voor de body van de functie – dit is de meest gebruikelijke manier om een bash-functie te schrijven. Zo ziet het eruit in code:
# Most common way to write a bash function.
example_function () {
commands
}De andere manier om een bash-functie te formatteren is de regel te beginnen met het gereserveerde bash-trefwoord function, gevolgd door de functienaam en accolades voor de body – de ronde haken zijn dan niet nodig.
# Another way to write a bash function.
function example_function {
commands
}Het definiëren van de functie voert de opdrachten niet uit. Om een bash-functie aan te roepen, moet je de functienaam callen, als volgt:
#!/bin/bash
# A hello world bash function
hello_world () {
echo "Hello World!"
}
# Invoking the hello_world function
hello_worldHierboven hebben we een hello_world-functie gemaakt die “Hello World!” afdrukt wanneer het bash-script wordt uitgevoerd.
Argumenten doorgeven aan bash-functies
Argumenten zijn variabelen die in een specifieke functie worden gebruikt. In bash kunnen we geen argumenten aan functies doorgeven zoals je zou doen in high-level programmeertalen zoals Python, Julia, enz. In plaats daarvan hebben bash-functies hun eigen command-line-argumenten en kunnen we parameters aan een functie doorgeven door ze na de functienaam te plaatsen – gescheiden door een spatie als er meerdere argumenten zijn.
In essentie worden functieargumenten behandeld als positionele parameters en shells-variabelen ($1, $2, ..., $n) worden gebruikt om de doorgegeven argumenten in de functie te benaderen.
#!/bin/bash
greet () {
echo "Hello $1 $2"
}
greet "John" "Doe" In het bovenstaande bash-script hebben we twee argumenten, John en Doe, doorgegeven aan onze greet-functie. Wanneer het bash-script nu wordt uitgevoerd, zouden we de volgende uitvoer moeten zien:
Hello John DoeLoops gebruiken in bash-scripts
Loops stellen je in staat om een blok opdrachten meerdere keren te herhalen. Bash ondersteunt for-loops en while-loops.
For-loops
Een for-loop iterereert over een lijst items of een numeriek bereik:
#!/bin/bash
# Loop over a list
for fruit in apple banana cherry; do
echo "I like $fruit"
done
# Loop over a numeric range
for number in {1..5}; do
echo "Number: $number"
doneWhile-loops
Een while-loop draait zolang de voorwaarde evalueert naar true:
#!/bin/bash
count=1
while [ $count -le 5 ]; do
echo "Count: $count"
count=$((count + 1))
done“If”-statements schrijven in bash
“If”-statements zijn conditionele statements die in programmeertalen worden gebruikt. Als een bewering waar blijkt te zijn, wordt een conditie uitgevoerd. Deze functionaliteit stelt ons in staat te bepalen onder welke omstandigheden een bepaald stuk code moet worden uitgevoerd.
In bash beginnen we de conditie met een if-statement en eindigen we met fi (if achterstevoren gespeld). Hier is een voorbeeld van een bash-script met if-conditionals:
#!/bin/bash
read -p "Give me a number: " number
if [ $number -gt 10 ];
then
echo "Your number is greater than 10."
fiIn het bovenstaande bash-script wordt de gebruiker gevraagd een getal te geven. Als het getal dat door de gebruiker is opgegeven groter is dan 10, dan wordt “Your number is greater than 10.” naar de terminal geschreven, maar als dat niet zo is, eindigt het programma. Figuur 3 is een voorbeeld waarin we een getal groter dan 10 doorgeven.

Figuur 3: “If”-statements gebruiken in Bash-scripts
Conclusie
Bash-scripting is een krachtige vaardigheid voor het automatiseren van taken, het beheren van systemen en het bouwen van datapijplijnen. In deze tutorial heb ik de kernblokken behandeld: de shebang-regel, scripts maken en uitvoeren, gebruikersinvoer vastleggen, werken met variabelen, loops, functies en conditionals.
Ga verder met je bash-scriptingreis met deze vervolgstappen:
- Volg de cursus Introduction to Bash Scripting om je vaardigheden te verdiepen met praktische oefeningen
- Leer hoe je scripts automatisch plant met
cron - Verken stringmanipulatie, bestands-I/O en foutafhandeling met exitcodes
- Oefen met automatiseringsscripts uit de praktijk: back-ups, logrotatie en systeemhealthchecks
- Wil je je skills naar een hoger niveau tillen, dan raad ik onze cursus Data Processing in Shell aan
Bash-scripting: veelgestelde vragen
Wat is een bash-script?
Een bash-script is een platte-tekstbestand met een reeks opdrachten die de Bash-shell uitvoert. Volgens conventie opgeslagen met een .sh-extensie, beginnen bash-scripts met een shebang-regel (#!/bin/bash) die het besturingssysteem vertelt welke interpreter moet worden gebruikt. Scripts worden gebruikt om repetitieve taken te automatiseren, bestanden te beheren, programma’s te draaien en systeembeheer uit te voeren.
Hoe voer ik een bash-script uit?
Er zijn twee manieren om een bash-script uit te voeren:
- Met het bash-commando:
bash script.sh— voert het script direct uit zonder dat uitvoerrechten nodig zijn - Uitvoerbaar maken: Voer één keer
chmod +x script.shuit om uitvoerrechten te geven, en start daarna met./script.sh
De tweede methode is de standaardaanpak voor het distribueren en draaien van scripts in productieomgevingen.
Wat is de shebang-regel in een bash-script?
De shebang (#!/bin/bash) is de eerste regel van een bash-script. Het vertelt het besturingssysteem welke interpreter moet worden gebruikt om het bestand uit te voeren. De #!-tekens ("hash-bang") worden gevolgd door het absolute pad naar de Bash-interpreter (/bin/bash). Zonder shebang kan je script nog steeds draaien, maar het gebruikt dan de shell die op dat moment actief is, wat tot inconsistent gedrag tussen systemen kan leiden.
Wat is het verschil tussen bash en shellscripting?
Shellscripting is een algemene term voor het schrijven van scripts die in elke Unix-shell draaien (sh, bash, zsh, ksh, enz.). Bash-scripting verwijst specifiek naar scripts die voor de Bash-shell (Bourne Again SHell) zijn geschreven. Bash is de standaard shell op de meeste Linux-systemen en breidt de POSIX-shellstandaard uit met functies zoals arrays, aritmetische expansie en geavanceerde stringmanipulatie. Wanneer mensen "shellscripting" zeggen, bedoelen ze meestal bash-scripting.
Hoe declareer en gebruik ik variabelen in een bash-script?
Declareer een variabele door een waarde toe te wijzen zonder spaties rond het =-teken en benader de waarde door de naam te laten voorafgaan door $:
name="Alice"
echo "Hello, $name!"Belangrijke regels: variabelenamen zijn hoofdlettergevoelig, geen spaties rond =, en zet variabelen tussen dubbele aanhalingstekens ("$var") als de waarde spaties kan bevatten. Gebruik $(command) voor command substitution om de uitvoer van een commando in een variabele op te slaan.

Een shell is een soort computerprogramma dat een interface biedt naar het besturingssysteem. De naam shell is afgeleid van het feit dat het de buitenste laag rond het besturingssysteem is.
Om de interactie tussen gebruikers en het besturingssysteem te beheren, vraagt de shell om invoer en interpreteert die invoer voor het besturingssysteem, voordat het eventuele uitvoer afhandelt. Deze invoer kan worden geleverd via een command-line interface (CLI) of een grafische gebruikersinterface (GUI), afhankelijk van de handeling en de rol die de computer vervult.
Kort gezegd stelt een shell gebruikers en andere programma’s in staat om rechtstreeks te communiceren met onderdelen van een besturingssysteem.
TL;DR
.sh-extensie met daarin een reeks shellopdrachten#!/bin/bashbash script.sh, of maak het uitvoerbaar metchmod +x script.shen voer het uit als./script.shfor/while) en conditionals (if/else)Een introductie in shellscripting
Shellscripting is een belangrijk onderdeel van communiceren met het besturingssysteem van een computer en een waardevolle vaardigheid voor developers, systeembeheerders en data engineers. Met scripten bedoelen we een reeks shell- en besturingssysteemopdrachten die worden geschreven en vervolgens in een bestand opgeslagen: typische handelingen die door shellscripts worden uitgevoerd zijn taken als bestandsmanipulatie, het starten van programma’s en het afdrukken van tekst.
Als je deze eenvoudige procedure onder de knie hebt, kan dat ontwikkelaars aanzienlijk wat tijd schelen, omdat bepaalde opdrachten niet telkens handmatig hoeven te worden getypt – het is zelfs mogelijk om scripts automatisch te laten uitvoeren op geplande tijden.
Er zijn verschillende shells beschikbaar voor Unix- en Linux-gebruikers. In de rest van deze tutorial richten we ons specifiek op de Bourne Again SHell (bash), een verbeterde versie van de Bourne shell en een van de meestgebruikte command-line interfaces voor Unix-gebaseerde besturingssystemen (inclusief Linux).
Nieuw op de command line? Begin met onze cursus Introduction to Shell om je basis te leggen voordat je in bash-scripting duikt.
Wat is een bash-script?
Bash is een Unix-command-line interface die verantwoordelijk is voor de interactie met het besturingssysteem van een computer. Net zoals filmscripts acteurs vertellen welke acties ze moeten uitvoeren, vertelt een bash-script de bash-shell wat hij moet doen. Een bash-script is dus een handige manier om opdrachten te groeperen tot een programma.
Elke opdracht die je rechtstreeks op de command line kunt uitvoeren, kun je in een bash-script zetten, en je mag verwachten dat het dezelfde acties uitvoert als op de command line. Andersom geldt dat elke opdracht die je in je bash-script zet, ook direct vanaf de command line kan worden uitgevoerd, met hetzelfde resultaat. Met andere woorden: als je weet hoe je vanaf de command line met je computer communiceert, weet je al best veel over bash-scripting.
Een van de belangrijkste verschillen is dat een bash-script een platte-tekstbestand is dat volgens conventie wordt opgeslagen met een
.sh-extensie (ze kunnen nog steeds draaien zonder de.sh-extensie).Een ander onderscheidend kenmerk van bash-scripts is de “shebang”, die op de eerste regel van alle scripts staat. De shebang is in feite een absoluut pad naar de bash-interpreter, bestaande uit de combinatie van het bash-“#” en “!” (bang), gevolgd door het pad naar de bash-shell. Het wordt gebruikt om Linux te vertellen welke interpreter moet worden gebruikt om het bestand te parseren.