Introduktion och repetition

Introduktion till Bash-skriptning

Alex Scriven

Data Scientist

Introduktion till kursen

Den här kursen täcker:

  • Från kommandoraden till ett Bash-skript
  • Variabler och datatyper i Bash-skriptning
  • Kontrollsatser
  • Funktioner och skriptautomatisering
Introduktion till Bash-skriptning

Varför Bash-skriptning? (Bash)

Varför Bash?

  • Bash står för 'Bourne Again Shell' (en ordlek)

  • Utvecklades på 80-talet men är ett mycket populärt skal idag. Standard i många Unix-system och på Mac

  • Unix driver internet! (ML-modeller, datapipelines)

    • AWS, Google och Microsoft har alla CLI:er till sina produkter
Introduktion till Bash-skriptning

Varför Bash-skriptning? (skriptning!)

Varför Bash-skriptning?

  • Enkelt att köra skalkommandon (ingen kopiering och inklistring varje gång!)
  • Kraftfulla programmeringskonstruktioner
Introduktion till Bash-skriptning

Förkunskaper

 

Du förväntas ha viss grundläggande kunskap inför den här kursen.

  • Förstå vad kommandoraden (terminalen, skalet) är
  • Ha använt grundläggande kommandon som cat, grep, sed m.fl.

Om det känns osäkert – vi repeterar det nu!

Introduktion till Bash-skriptning

Repetition av skalkommandon

Några viktiga skalkommandon:

  • (e)grep filtrerar indata baserat på regex-mönstermatchning
  • cat sammanfogar filinnehåll rad för rad
  • tail \ head ger bara de sista/första -n raderna (en flagga)
  • wc räknar ord eller rader (med flaggorna -w -l)
  • sed utför mönsterbaserad strängersättning
Introduktion till Bash-skriptning

En påminnelse om REGEX

'Regex', eller reguljära uttryck, är en viktig färdighet vid Bash-skriptning.

Du behöver ofta filtrera filer, data i filer, matcha argument och mycket annat. Det lönar sig att repetera detta.

För att testa dina regex kan du använda hjälpsamma verktyg som regex101.com

Introduktion till Bash-skriptning

Lite skalpraktik

Vi repeterar några skalkommandon med ett exempel.

Tänk dig en textfil fruits.txt med 3 rader data:

banana
apple
carrot

Om vi kör grep 'a' fruits.txt returneras:

banana
apple
carrot
Introduktion till Bash-skriptning

Lite skalpraktik

Men om vi kör grep 'p' fruits.txt returneras:

apple

Komma ihåg att hakparenteser utgör en matchningsmängd, t.ex. [eyfv]. Med ^ blir det en invers mängd (inte dessa bokstäver/siffror)

Så om vi kör grep '[pc]' fruits.txt returneras:

apple
carrot
Introduktion till Bash-skriptning

Lite skalpraktik

Du har förmodligen använt 'pipes' tidigare i terminalen. Om vi hade väldigt många frukter i filen skulle vi kunna använda sort | uniq -c

  • Det första sorterar alfabetiskt, det andra räknar förekomster
  • Om vi vill ha de n vanligaste frukterna kan vi sedan pipea till wc -l och använda head
cat new_fruits.txt | sort | uniq -c | head -n 3
  14 apple
  13 bannana
  12 carrot
Introduktion till Bash-skriptning

Nu kör vi en övning!

Introduktion till Bash-skriptning

Preparing Video For Download...