Introductie en opfrisser

Introductie tot Bash-scripting

Alex Scriven

Data Scientist

Introductie tot de cursus

Deze cursus behandelt:

  • Van command-line naar een Bash-script
  • Variabelen en datatypen in Bash
  • Controlevlakken
  • Functies en scriptautomatisering
Introductie tot Bash-scripting

Waarom Bash-scripting? (Bash)

Eerst: waarom Bash?

  • Bash staat voor 'Bourne Again Shell' (een woordgrap)

  • Ontwikkeld in de jaren 80, nu nog steeds populair. Standaard op veel Unix-systemen en Macs

  • Unix draait het internet! (ML-modellen, datapijplijnen)

    • AWS, Google, Microsoft hebben allemaal CLI’s voor hun producten
Introductie tot Bash-scripting

Waarom Bash-scripting? (scripting!)

Dus waarom Bash-scripting?

  • Makkelijk shellcommando’s uitvoeren (niet steeds copy-pasten!)
  • Krachtige programmeerconstructies
Introductie tot Bash-scripting

Verwachte voorkennis

 

We verwachten basiskennis voor deze cursus.

  • Weet wat de command-line (terminal, shell) is
  • Heb basiscommando’s gebruikt zoals cat, grep, sed enz.

Ben je wat roestig? Geen zorgen, we frissen het nu op!

Introductie tot Bash-scripting

Opfrisser shellcommando’s

Belangrijke shellcommando’s:

  • (e)grep filtert input met regex-patronen
  • cat voegt bestandsinhoud regel voor regel samen
  • tail \ head geven alleen de laatste -n (een flag) regels
  • wc telt woorden of regels (met flags -w -l)
  • sed vervangt strings op basis van patroonmatching
Introductie tot Bash-scripting

Een herinnering aan REGEX

'Regex' of reguliere expressies zijn essentieel voor Bash-scripting.

Je filtert vaak bestanden, data in bestanden, matcht argumenten en meer. Het is goed om dit te herhalen.

Test je regex op sites zoals regex101.com

Introductie tot Bash-scripting

Wat shell-oefening

Laten we wat shellcommando’s herhalen met een voorbeeld.

Neem een tekstbestand fruits.txt met 3 regels:

banana
apple
carrot

Als we grep 'a' fruits.txt draaien, krijgen we:

banana
apple
carrot
Introductie tot Bash-scripting

Wat shell-oefening

Maar met grep 'p' fruits.txt krijg je:

apple

Vierkante haken definiëren een matcheset zoals [eyfv]. Met ^ wordt dit omgekeerd (dus niet deze tekens).

Met grep '[pc]' fruits.txt krijg je:

apple
carrot
Introductie tot Bash-scripting

Wat shell-oefening

Je hebt vast wel eens ‘pipes’ gebruikt in de terminal. Met veel fruitregels kun je sort | uniq -c gebruiken.

  • Eerst alfabetisch sorteren, daarna tellen
  • Voor de top-n fruits kun je dan naar wc -l pipen en head gebruiken
cat new_fruits.txt | sort | uniq -c | head -n 3
  14 apple
  13 bannana
  12 carrot
Introductie tot Bash-scripting

Laten we oefenen!

Introductie tot Bash-scripting

Preparing Video For Download...