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