Introduzione e ripasso

Introduzione al Bash Scripting

Alex Scriven

Data Scientist

Introduzione al corso

Questo corso coprirà:

  • Dal command-line a uno script Bash
  • Variabili e tipi di dato in Bash
  • Strutture di controllo
  • Funzioni e automazione degli script
Introduzione al Bash Scripting

Perché Bash scripting? (Bash)

Per prima cosa, perché Bash?

  • Bash sta per 'Bourne Again Shell' (un gioco di parole)

  • Sviluppato negli anni '80, ma ancora molto usato. Predefinito in molti sistemi Unix e Mac

  • Unix è il motore di internet! (ML, pipeline dati)

    • AWS, Google, Microsoft hanno tutte CLI per i loro prodotti
Introduzione al Bash Scripting

Perché Bash scripting? (scripting!)

Perché fare scripting in Bash?

  • Esecuzione facile dei comandi shell (niente copia-incolla ogni volta!)
  • Costrutti di programmazione potenti
Introduzione al Bash Scripting

Conoscenze richieste

 

Per questo corso serve una base minima.

  • Sapere cos'è la riga di comando (terminal, shell)
  • Aver usato comandi base come cat, grep, sed, ecc.

Se sei arrugginito, nessun problema: ora ripassiamo!

Introduzione al Bash Scripting

Ripasso comandi shell

Comandi shell importanti:

  • (e)grep filtra l'input con pattern regex
  • cat concatena i contenuti dei file riga per riga
  • tail \ head mostrano solo le ultime -n righe (flag)
  • wc conta parole o righe (flag -w -l)
  • sed fa sostituzioni basate su pattern
Introduzione al Bash Scripting

Promemoria sulle REGEX

'Regex', o espressioni regolari, sono fondamentali per gli script Bash.

Ti serviranno spesso per filtrare file, dati nei file, confrontare argomenti e altro. Vale la pena ripassarle.

Per testare le regex puoi usare siti utili come regex101.com

Introduzione al Bash Scripting

Un po' di pratica shell

Ripassiamo alcuni comandi shell con un esempio.

Considera un file di testo fruits.txt con 3 righe:

banana
apple
carrot

Se esegui grep 'a' fruits.txt otterrai:

banana
apple
carrot
Introduzione al Bash Scripting

Un po' di pratica shell

Ma se esegui grep 'p' fruits.txt otterrai:

apple

Ricorda: le parentesi quadre definiscono un set di match, ad es. [eyfv]. Con ^ diventa un set inverso (non queste lettere/numeri).

Quindi, con grep '[pc]' fruits.txt otterresti:

apple
carrot
Introduzione al Bash Scripting

Un po' di pratica shell

Probabilmente hai già usato le “pipe” nel terminale. Se il file avesse molte voci, puoi usare sort | uniq -c

  • Il primo ordina alfabeticamente, il secondo conta
  • Per i primi n elementi puoi poi fare pipe a wc -l e usare head
cat new_fruits.txt | sort | uniq -c | head -n 3
  14 apple
  13 bannana
  12 carrot
Introduzione al Bash Scripting

Ayo berlatih!

Introduzione al Bash Scripting

Preparing Video For Download...