Strumenti Utente

Strumenti Sito


informatica:sol:laboratorio19:esercitazionib:esercitazione5

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:laboratorio19:esercitazionib:esercitazione5 [18/03/2019 alle 08:44 (6 anni fa)] – creata Massimo Torquatiinformatica:sol:laboratorio19:esercitazionib:esercitazione5 [18/03/2019 alle 11:30 (6 anni fa)] (versione attuale) Massimo Torquati
Linea 1: Linea 1:
 ====== Esercitazione 5 ====== ====== Esercitazione 5 ======
  
-===== Esercizio 1 =====+====== Discussione su 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 ========== 
 + 
 +Estrarre dal file ''/etc/passwd'' la lista di tutti gli utenti della macchina utilizzando il comando ''cut'' (vedere slide su introduzione bash e manuale di ''cut''). Ordinare alfabeticamente la lista ottenuta utilizzando il comando ''sort'' (vedere man 1 sort).\\ 
 +NB: fare attenzione al seguente messaggio di warning contenuto nel manuale del comando sort:\\ 
 +"The locale specified by the environment affects sort order. Set LC_ALL=C to get the traditional sort order that uses native byte values."
  
 ===== Esercizio 2 ===== ===== Esercizio 2 =====
 +
 +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 passata come argomento usare il comando ''find'', per trovare i file modificati meno di N minuti fa utilizzare l'opzione '-mmin' di find -- leggere il manuale ''man 1 find''.
  
 ===== Esercizio 3 ===== ===== Esercizio 3 =====
 +
 +Scrivere uno script bash che prende come argomento un nome di directory, esegue il controllo che la directory esista e sia leggibile (opzione '-d' e '-r' del comando 'if') e restituisce un file in formato 'nodedirectory.tar.gz' contenente l'archivio compresso della directory passata come argomento. 
 +
 +
informatica/sol/laboratorio19/esercitazionib/esercitazione5.1552898679.txt.gz · Ultima modifica: 18/03/2019 alle 08:44 (6 anni fa) da Massimo Torquati

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki