Strumenti Utente

Strumenti Sito


informatica:sol:laboratorio17:esercitazionib:esercitazione4

Differenze

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

Link a questa pagina di confronto

Entrambe le parti precedenti la revisioneRevisione precedente
Prossima revisione
Revisione precedente
informatica:sol:laboratorio17:esercitazionib:esercitazione4 [13/03/2017 alle 08:17 (8 anni fa)] Massimo Torquatiinformatica:sol:laboratorio17:esercitazionib:esercitazione4 [15/03/2017 alle 11:22 (8 anni fa)] (versione attuale) Massimo Torquati
Linea 1: Linea 1:
 ====== Esercitazione 4 ====== ====== Esercitazione 4 ======
  
-===== Discussione su Makefile =====+====== Discussione su un Makefile ======
  
-Vogliamo scrivere un Makefile in grado di compilare tutti i sorgenti ''.c'' che si trovano nella directory dove si trova il Makefile personalizzando la compilazione dei file oggetto:+Vogliamo scrivere un Makefile in grado di compilare tutti i sorgenti ''.c'' che si trovano nella directory dove si trova il Makefilepersonalizzando la compilazione dei file eseguibili:
  
 <code> <code>
-CC = gcc -std=c99 +CC = gcc -std=c99   # quale compilatore usare per compilare il codice 
-CFLAGS = -g -Wall +CFLAGS = -g -Wall       # flags passati al compilatore per debugging e warning etc.. 
-OPTFLAGS= -O3 +OPTFLAGS= -O3            # flags passati al compilatore per ottimizzazione del codice 
-INCLUDES= -I. +INCLUDES= -I.            # path dove si trovano gli include (non di sistema) 
-LDFLAGS = -L. +LDFLAGS = -L.            # path dove so trovano le librerie 
-LIBS    =+LIBS    =                # vanno messe qui le librerie da linkare
  
 SOURCES=$(wildcard *.c)  # considera tutti i file .c nella directory  SOURCES=$(wildcard *.c)  # considera tutti i file .c nella directory 
Linea 18: Linea 18:
 .PHONY: all clean cleanall .PHONY: all clean cleanall
  
-# personalizziamo la generazione dell'eseguibile da un .c+# personalizziamo la generazione dell'eseguibile da un .c utilizzando una Pattern Rule 
 +# Pattern Rules documentation:   
 +# https://www.gnu.org/software/make/manual/html_node/Pattern-Rules.html
 %: %.c %: %.c
  $(CC) $(CFLAGS) $(INCLUDES) $(OPTFLAGS) -o $@ $< $(LDFLAGS) $(LIBS)  $(CC) $(CFLAGS) $(INCLUDES) $(OPTFLAGS) -o $@ $< $(LDFLAGS) $(LIBS)
Linea 32: Linea 34:
 </code> </code>
  
 +====== Bash scripting =======
  
 ===== Esercizio 1 ========== ===== Esercizio 1 ==========
Linea 46: Linea 49:
 ===== Esercizio 3 ===== ===== Esercizio 3 =====
  
-Utilizzando il comando ''find'' stampare sullo standard output la lista di tutti i file contenuti nella directory corrente che hanno estensione ".sh"che sono stati modificati negli ultimi 30 minuti (Usare l'opzione -mmin di find -- vedi ''man 1 find'').+Scrivere uno script bash che dati come argomenti un nome di directory una parola ed un numero ''N'', stampa la lista di tutti i nomi di file contenuti nella directory che sono stati modificati negli ultimi ''N'' minuti e che contengono la parola passata come secondo argomento. 
 +(Per cercare nella directory usare il comando ''find'', per trovare i file modificati meno di N minuti fa utilizzare l'opzione -mmin di find -- vedi ''man 1 find'').
  
 ===== Esercizio 4 ===== ===== Esercizio 4 =====
  
-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).    +Scrivere uno script bash che prende in input un nome di file testuale e stampa sullo standard output il numero di parole contenute nel file (Suggerimento, usare l'opzione -a del builtin ''read''. Per accedere al manuale: ''man bash'', quindi cercare -- si cerca dando il comando ''/'' -- "SHELL BUILTIN COMMANDS" quindi scorrere fino a trovare il builtin read). 
- +
-===== Esercizio 5 ===== +
- +
-Scrivere uno script bash che prende in input un nome di file testuale e stampa sullo standard output il numero di parole contenute nel file (Suggerimento, usare l'opzione -a del builtin ''read''). +
  
  
informatica/sol/laboratorio17/esercitazionib/esercitazione4.1489393030.txt.gz · Ultima modifica: 13/03/2017 alle 08:17 (8 anni fa) da Massimo Torquati

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki