Indice
Esercitazione 4bis
Dove si continua a sperimantare la bash e si scrivono i primi script.
Esercizio 1: Segnali ....
Usare kill
per inviare il segnale SIGUSR1 nella shell corrente ed usare trap
per ridefinirlo in modo da far stampare alla shell un breve messaggio (es “Ciao Mondo!”) ogni volta che riceve un segnale SIGUSR1.
kill
permette di inviare un segnale ad un processo di cui si conosce il pid. Usare ps
o $$
per ottenere il pid della shell corrente . trap
invece permette di registrare un comando da effettuare all'arrivo di un segnale (vedi lucidi).
Esercizio 2 : getting started
Scrivere uno script bash gettingStarted che stampi il suo nome, il numero degli argomenti ed i primi tre argomenti (se esistono). Come
bash:~$ ./gettingStarted mio tuo suo Script ./gettingStarted con 3 argomenti Primo parametro mio Scondo parametro tuo Terzo parametro suo Ciao Mondo bash:~$
Esercizio 3: mycd
Scrivere una funzione Bash che implementa una versione personalizzata del builtin cd in cui prima viene eseguito il cambio di directory per mezzo del nomale builtin cd e poi viene eseguita una stampa formattata che ricorda la directory di partenza e quella di arrivo. Es:
bash:~$ mycd PROVA mycd: successo! /home/s/susanna --> /home/s/susanna/PROVA bash:~/PROVA$
Se il cambio della working directory non ha successo mycd stampa il normale messaggio di errore del builtin cd.
Esercizio 4: mygzip
mygzip e' uno script bash che prende come parametro una directory ed una lista di file
bash:~$ mygzip dir file1 ... filek
applica il comando gzip
a tutti i file file1 … filek presenti nella directory dir
Esercizio 5: dirdiff
Realizzare lo script dirdiff prende tre parametri
bash:~$ dirdiff dir1 dir2 dir3
ed effettua la differenza fra la directory dir1
e la directory dir2
scrivendo i lrisultato in dir3
. In pratica copia in dir3
ogni file di dir1
che NON e' presente in dir2
con lo stesso nome.