Strumenti Utente

Strumenti Sito


informatica:sol:laboratorio17:esercitazionib:esercitazione5

Esercitazione 5

Scripting Bash

Esercizio 1

Scrivere uno script bash che prende “k>=2” file testuali in input e appende i primi “k-1” files nel file passato come ultimo argomento (k-esimo).

Esercizio 2

Scrivere uno script bash che dati 2 file di testo in input (f1 ed f2) produce il seguente menu di scelta per l'utente:
1. rimuovere i file “f1” ed “f2”
2. archiviare i file “f1” ed “f2”
3. appendere il file “f1” al file “f2”
4. esci

Implementare le 3 opzioni e testare tutti i casi. Per l'opzione 1 chiedere conferma prima della rimozione dei file; per l'opzione 2 utilizzare i comandi tar e gzip in pipeline e produrre l'archivio compresso “f1f2.tar.gz”. Non utilizzare il builtin select per implementare il menu.

Esercizio 3

Si consideri il file testuale stats.txt.gz (decomprimerlo con gunzip) che riporta alcune statistiche di esecuzione di un dato server. Scrivere un programma bash che estrae il valore massimo e calcola il valore medio dei numeri contenuti nella colonna 17 del file fornito.

Chiamate di sistema per accesso a files

Esercizio 4

Implementare utilizzando le chiamate di sistema open read write close l'equivalente del comando Unix cat:

 mycat file1 [fileN].

Esercizio 5

Scrivere un programma, utilizzando chiamate di sistema, che implementi l'equivalente del comando Unix cp. Il programma deve accettare 3 argomenti come segue:

mycp_sc filein fileout [buffersize]

L'argomento 'buffersize' e' la dimensione del buffer da utilizzare per le letture e scritture con le SC read e write (se non specificato assegnare un valore di default, es. 256bytes): Realizzare quindi lo stesso programma, utilizzando le chiamate di libreria fread ed fwrite. Chiamiamo questa seconda versione 'mycp_std'. Confrontare le prestazioni (usando il comando time) del programma 'mycp_sc' e 'mycp_std' al variare del parametro 'buffersize' (provare un po' di casi: 1 4 8 16 32 ….. 8192). Che cosa si nota ?

Opzionale (homework) : scrivere uno script bash che lanciato da una regola del makefile esegue mycp_sc e mycp_std scrivendo i risultati in due file separati. Plottare i dati dello 'user' e 'sys' time con gnuplot.

informatica/sol/laboratorio17/esercitazionib/esercitazione5.txt · Ultima modifica: 22/03/2017 alle 06:06 (7 anni fa) da Massimo Torquati