−Indice
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.