====== 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.