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 07:57 (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 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 eseguibili:
 +
 +<code>
 +CC = gcc -std=c99   # quale compilatore usare per compilare il codice
 +CFLAGS = -g -Wall       # flags passati al compilatore per debugging e warning etc..
 +OPTFLAGS= -O3            # flags passati al compilatore per ottimizzazione del codice
 +INCLUDES= -I.            # path dove si trovano gli include (non di sistema)
 +LDFLAGS = -L.            # path dove so trovano le librerie
 +LIBS    =                # vanno messe qui le librerie da linkare
 +
 +SOURCES=$(wildcard *.c)  # considera tutti i file .c nella directory 
 +BINS=$(SOURCES:.c=)      # rimuove il suffisso .c dalla lista SOURCES
 +
 +.PHONY: all clean cleanall
 +
 +# 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
 + $(CC) $(CFLAGS) $(INCLUDES) $(OPTFLAGS) -o $@ $< $(LDFLAGS) $(LIBS)
 +
 +# prima regola contenente il target
 +all: $(BINS)
 +
 +clean:
 + \rm -f *~
 +
 +cleanall: clean
 + \rm -f $(BINS)
 +</code>
 +
 +====== Bash scripting =======
  
 ===== Esercizio 1 ========== ===== Esercizio 1 ==========
Linea 14: 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.1489391820.txt.gz · Ultima modifica: 13/03/2017 alle 07:57 (8 anni fa) da Massimo Torquati

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki