Strumenti Utente

Strumenti Sito


informatica:sol:laboratorio20:esercitazionib:esercitazione6

Differenze

Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.

Link a questa pagina di confronto

Prossima revisione
Revisione precedente
informatica:sol:laboratorio20:esercitazionib:esercitazione6 [21/03/2020 alle 14:21 (5 anni fa)] – creata Massimo Torquatiinformatica:sol:laboratorio20:esercitazionib:esercitazione6 [24/03/2020 alle 09:06 (5 anni fa)] (versione attuale) Massimo Torquati
Linea 1: Linea 1:
 +====== Esercitazione 6 ======
 +
 ===== Esercizio 1 ===== ===== Esercizio 1 =====
  
-Scrivere uno script bash che prende "k>=2nomi di file di ingresso appende i primi "k-1" files nel file passato come ultimo argomento (k-esimo), scrivendo i file in ingresso nell'ordine da destra a sinistra (esmyscript.sh fileA fileB fileC --  fileC conterrain sequenza prima fileB poi fileA).+Completare le parti mancanti (sia codice che commento) del seguente script bash:  
 + 
 +<code> 
 + 
 +....                      # shell da usare per l’interpretazione dello script 
 + 
 +if [ $# -ne 1 ]; then                        # (commenta il codice) ........ 
 +    echo usa: $(basename $0) nomedirectory   # ......... 
 +    exit -1 
 +fi 
 +dir=$1 
 +if [ ! -d $dir ]; then                       # (commenta il codice) ......... 
 +    echo "L'argomento $dir non e' una directory   
 +    exit 1;    
 +fi 
 + 
 +bdir=$(basename $dir) 
 +if [ -w ....... ]; then                     # il file esiste ed e scrivibile 
 +    echo -n "il file $bdir.tar.gz esiste gia', sovrascriverlo (S/N)?" 
 +    read yn                                 # (commenta il codice) ......... 
 +    if [ x$yn != x"S" ]; then               # .............. 
 +          exit 0; 
 +    fi 
 +    rm -f $bdir.tar.gz 
 +fi 
 +echo "creo l'archivio con nome $bdir.tar.gz" 
 + 
 +tar cf $bdir.tar $dir ...............       # appende l’output sullo std-error nel file error.txt    
 +if [ ...... ]; then                         # controlla che il comando sia andato a buon fine 
 +    echo "Errore nella creazione dell'archivio" 
 +    exit 1 
 +fi 
 +gzip $bdir.tar  ..........                  # appende l’output sullo std-error nel file error.txt 
 +if [ ...... ]; then                         # controlla che il comando sia andato a buon fine 
 +    echo 
 +    echo "Errore nella compressione dell'archivio" 
 +    exit 1 
 +fi 
 + 
 +echo "archivio creato con successo, il contenuto dell’archivio e':" 
 +tar tzvf $bdir.tar.gz   .........           # redirige lo std-error sullo std-output 
 +exit 0 
 +</code>
  
 ===== Esercizio 2 ===== ===== Esercizio 2 =====
 +
 +Scrivere uno script bash che prende "k>=2" nomi di file di ingresso e appende i primi "k-1" files nel file passato come ultimo argomento (k-esimo), scrivendo i file in ingresso nell'ordine da destra a sinistra (es. myscript.sh fileA fileB fileC --  fileC conterra' in sequenza prima fileB e poi fileA).\\
 +SUGGERIMENTO: creare un array contenente tutti gli argomenti passati allo script.
 +
 +===== Esercizio 3 =====
  
 Scrivere uno script bash che dati 2 file di testo in input (f1 ed f2) produce il seguente menu di scelta per l'utente:\\ Scrivere uno script bash che dati 2 file di testo in input (f1 ed f2) produce il seguente menu di scelta per l'utente:\\
Linea 12: Linea 61:
  
 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. 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 ===== 
- 
  
 ===== Esercizio 4 ===== ===== Esercizio 4 =====
  
 +Dati i file testuali contenuti in {{informatica:sol:laboratorio20:esercitazionib:results.tgz | questo}} tarball, ognuno dei quali contiene per ogni riga due campi separati da spazio ('id valore'). Scrivere uno script bash che legge il campo 'valore' di ogni file e ne calcola media e deviazione standard, quindi stampa sullo standard output una stringa con il seguente formato:\\
 +[nomedelfile senza estensione]  [numero di linee del file] [media] [deviazione standard]. Un esempio di output per i due file test1.dat e test2.dat è: \\
 +test1    20.18  1.25\\
 +test2    11.20  .81\\
 +NOTA: per effettuare i calcoli in floating point usare il comando ''bc'' (esempio: echo "scale=2; sqrt(12)" | bc -q" stampa 3.46, cioe' la radice quadrata di 12 con troncamento a 2 cifre dopo la virgola).
informatica/sol/laboratorio20/esercitazionib/esercitazione6.1584800478.txt.gz · Ultima modifica: 21/03/2020 alle 14:21 (5 anni fa) da Massimo Torquati

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki