Indice

Esercitazione 5

Ancora su scripting e bash.

Esercizio 1: 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 2: 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.

Esercizio 3: 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 4: 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 5: 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.