PROGRAMMAZIONE BASH - INTRODUZIONE 2018/5/27 2018/5/27 2018/5/27 2018/5/27 2018/5/27 2018/5/27 2018/5/27 2018/5/27 PROGRAMMAZIONE BASH - INTRODUZIONE 1 1
CHE COS'È UNO SCRIPT BASH 2018/5/27 2018/5/27 2018/5/27 2018/5/27 2018/5/27 2018/5/27 2018/5/27 2018/5/27 CHE COS'È UNO SCRIPT BASH un elenco di comandi tutti insieme in un file in una struttura organizzata per automatizzare le operazioni quotidiane (uno script può essere programmato per essere eseguito periodicamente) Come si crea uno script - uno script è un semplice file di testo. Può essere scritto da un editor di testo - dobbiamo dare i permessi di esecuzione al file (v. lezione sui permessi) - inserire lo script nelle cartelle che sono indicate nella variabile d'ambiente PATH 2 2
2018/5/27 2018/5/27 2018/5/27 2018/5/27 2018/5/27 2018/5/27 2018/5/27 IL PRIMO SCRIPT #!/bin/bash #questo è il primo script echo 'ciao a tutti questo è il primo scritto' 3 3 3 3 3
diamo i permessi di esecuzione allo script 2018/5/27 2018/5/27 2018/5/27 2018/5/27 2018/5/27 2018/5/27 2018/5/27 diamo i permessi di esecuzione allo script chmod u+x script.sh diamo i permessi di esecuzione all'utente proprietario del file. eseguiamo lo script in questo modo ./script.sh 4 4 4 4 4
Possiamo eseguire lo script anche così 2018/5/27 2018/5/27 2018/5/27 2018/5/27 2018/5/27 2018/5/27 2018/5/27 Possiamo eseguire lo script anche così script se inseriamo lo script in una delle directory indicate nella variabile $PATH 5 5 5 5 5
2018/5/27 2018/5/27 2018/5/27 2018/5/27 2018/5/27 2018/5/27 2018/5/27 variabili Una variabile nello shell scripting viene creata nel momento in cui viene usata. Praticamente vuol dire che se usiamo una variabile senza averla definita il sistema la crea per noi con valore non definito (di solito 0). Una variabile è un oggetto che può assumere diversi valori durante l'esecuzione di uno script. vediamo alcuni esempi di variabile nella pagina successiva 6 6 6 6 6 6 6
2018/5/27 2018/5/27 2018/5/27 2018/5/27 2018/5/27 2018/5/27 2018/5/27 Esempi di variabili variabile=valorevariabile Si usa una variabile all'interno di uno script in questo modo $nomevariabile. 7 7 7 7 7 7 7
Dove mettere gli script 2018/5/27 2018/5/27 2018/5/27 2018/5/27 2018/5/27 2018/5/27 2018/5/27 Dove mettere gli script /usr/bin/nome_utente è un buon posto per i propri script personali /usr/local/bin se vogliamo che li vedano tutti gli utenti del sistema /usr/local/sbin -> solo per amministratori di sistema /bin/ e /usr/bin -> software gestiti dal manutentore della distro 8 8 8 8 8 8
2018/5/27 2018/5/27 2018/5/27 2018/5/27 2018/5/27 2018/5/27 2018/5/27 #!/bin/bash #programma per la gestione di file e cartelle nomeprogramma=MYFILEMANAGER versione=0.1 echo "================= $nomeprogramma + $versione ================= " 9 9 9 9 9 9 9
come chiamiamo una variabile 2018/5/27 2018/5/27 2018/5/27 2018/5/27 2018/5/27 2018/5/27 2018/5/27 come chiamiamo una variabile - caratteri alfanumerici compresi gli underscore ( _ ) - il primo carattere non può essere una cifra - spazi e segni di punteggiatura non sono ammessi ci sono anche le costanti che sono praticamente come le variabili sono che il loro valore non può cambiare 10 10 10 10 10 10 10
2018/5/27 2018/5/27 2018/5/27 2018/5/27 2018/5/27 2018/5/27 2018/5/27 l'assegnamento la shell non prende i considerazioni i tipi di dato considera tutto come stringhe (abbiamo visto che con l'aritmetic expansion possiamo considerare un'espressione come numerica tramite $(()))) ciao=a a=c b="ciao a tutti $ciao" c=$(ls -l) d="4+5+6 fa $((4+5+6))" 11 11 11 11 11 11 11
2018/5/27 2018/5/27 2018/5/27 2018/5/27 2018/5/27 2018/5/27 2018/5/27 Le funzioni di shell -2 Le funzioni di shell sono piccoli script all'interno degli script, utili per suddividere i processi dei nostri programmi Esempio function stampa(){ Elenco comandi return }
Esempio utlizzo shell functions 2018/5/27 2018/5/27 2018/5/27 2018/5/27 2018/5/27 2018/5/27 2018/5/27 Esempio utlizzo shell functions #!/bin/bash # Shell function demo function stampastep2 { echo "Step 2" return } # Main program starts here echo "Step 1" stampastep2 echo "Step 3"
2018/5/27 2018/5/27 2018/5/27 2018/5/27 2018/5/27 2018/5/27 2018/5/27 Local variable Sono accessibili solo all'interno di una shell function nel momento in cui questa risulta in esecuzione. Al termine dell'esecuzione della funzione, tutte le variabili locali non sono più accessibili. Si definiscono tramite local nome_variabile Permette di usare lo stesso nome di una variabile globale senza interferire con il programma principale Garantiscono una modularità nelle shell functions (queste possono essere riutilizzate in altri script)
Esempio di variabile locali 2018/5/27 2018/5/27 2018/5/27 2018/5/27 2018/5/27 2018/5/27 2018/5/27 Esempio di variabile locali #!/b in/ba sh Vari abile = 0 func t_1 () { loca l Varia bile Vari abile =1 ech o "fun ct_1: Varia bile = $Var iabil e" } func t_2 () { loca l foo foo =2 ech o "fun ct_2: foo = $foo " ech o "glo bal: Fun ct_1 func t_2 foo = $foo "