====== Esercitazione 5 ====== Dove si continua a sperimentare la bash ===== 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: modify ===== Realizzare uno script Bash che realizza un comando di sintassi: modify [dir] suffix che cambia il nome di tutti i file in //dir// aggiungendo un suffisso ''.suffix''. Se //dir// non e' specificata ridenomina i file nella directory corrente. Infine, //modify// stampa tutti i file modificati lasciando fra uno e l'altro una riga vuota file1.suffix file2.suffix .... ===== Esercizio 3: selectfile ===== Realizzare uno script Bash che selezioni tutti i file con un certo suffisso nella directory corrente, contro lli fra questi quali hanno diritto di esecuzione settato per l'owner e presenti un menu in cui si richiede quale di questi file deve essere eseguito. Ad esempio: bash:~$ ls primo.test primo.check zz.test zz.check bash:~$ selectfile test 1) primo.test 2) zz.test Scelta? ===== Esercizio 4: count ===== Realizzare uno script ''count'' che legge da standard input dei record relativi ad esami registrati, ciascun record ha formato matricola_studente:codice_esame:voto\n lo script conta per ogni codice quanti sono gli studenti che hanno superato quell'esame e al termine dell'input (EOF) stampa sullo standard output una serie di righe codice_esame n_studenti //Suggerimento:// utilizzare ''read'' per leggere da standard input e gli array bash per memorizzare i vari contatori.