Linguaggio di bash per esempi. Tre modi per quotare. Esempio. quotare: significa trattare caratteri speciali come normali caratteri



Documenti analoghi
GLI SCRIPT DI SHELL. Lucidi a cura di B.De Carolis. UNIX shell script UdB- Dip Informatica

L utility Unix awk [Aho-Weinberger-Kernighan]

NOZIONI BASE SHELL E SCRIPT LINUX

Corso ForTIC C2 LEZIONE n. 8. Cos'è la shell Le variabili d'ambiente L'uso della shell per la realizzazione di semplici script

Il sistema operativo UNIX/Linux. Gli script di shell

Laboratorio di Elementi di Architetture e Sistemi Operativi Esercizi del 28 Marzo 2012

Comandi filtro: sed. Se non si specificano azioni, sed stampa sullo standard output le linee in input, lasciandole inalterate.

Ridirezione su/da file

Descrizione di un algoritmo

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. Script. Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 13 Agosto 2014

Automatizzare i compiti ripetitivi. I file batch. File batch (1) File batch (2) Visualizzazione (2) Visualizzazione

Introduzione al MATLAB c Parte 2

Gli algoritmi: definizioni e proprietà

Funzioni in C. Violetta Lonati

Stream EDitor (sed) sed NON modifica l'input 2. L'output viene inviato allo standard output e puo' essere rediretto

Lezione 5: Controllo del flusso e costrutti avanzati

Calcolare il massimo di una lista

Corso di Sistemi di Elaborazione delle informazioni

Esercizio 2. Client e server comunicano attraverso socket TCP

Link e permessi. Corso di Laurea Triennale in Ingegneria delle TLC e dell Automazione. Corso di Sistemi Operativi A. A

Corso di Informatica

Laboratorio di Informatica

Matlab: Strutture di Controllo. Informatica B

Richiesta pagina PHP (es: index.php)

Dott.ssa Adriana Pietramala. Dott.ssa Maria Vittoria Avolio

Arduino: Programmazione

I Metacaratteri della Shell Unix

Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it

Programmare in Java. Olga Scotti

OTTAVA ESPERIENZA DI LABORATORIO. L elaborazione dei files in C

Leggere un messaggio. Copyright 2009 Apogeo

LUdeS Informatica 2 EXCEL. Seconda parte AA 2013/2014

Le funzioni di shell La bash supporta la programmazione procedurale e prevede la possibilità di definire funzioni utilizzando le sintassi

MATLAB. Caratteristiche. Dati. Esempio di programma MATLAB. a = [1 2 3; 4 5 6; 7 8 9]; b = [1 2 3] ; c = a*b; c

Dall Algoritmo al Programma. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Alcune regole di base per scrivere un programma in linguaggio C

La struttura dati ad albero binario

DAL DIAGRAMMA AL CODICE

Fondamenti di Programmazione

Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:

Introduzione alla programmazione in C

JAVASCRIPT. Tale file è associato alla pagina web mediante il tag <script> inserito nella sezione <head> con la seguente sintassi:

Javascript: il browser

Introduzione al Python

Programmazione I / Informatica generale Prova scritta 11 Giugno 2008

Laboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 18 31/03/2014

Esercizi di JavaScript

Algoritmo. I dati su cui opera un'istruzione sono forniti all'algoritmo dall'esterno oppure sono il risultato di istruzioni eseguite precedentemente.

RISOLUTORE AUTOMATICO PER SUDOKU

Appunti del corso di Informatica 1. 6 Introduzione al linguaggio C

GESTIONE INFORMATICA DEI DATI AZIENDALI

Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli

Editor vi. Editor vi

Database Manager Guida utente DMAN-IT-01/09/10

Liberare la memoria allocata dinamicamente.

Sottoprogrammi: astrazione procedurale

Linguaggio C - Stringhe

19. LA PROGRAMMAZIONE LATO SERVER

Procedure memorizzate SQL-2003/PSM. Forma base di PSM. Parametri in PSM

Al giorno d oggi, i sistemi per la gestione di database

Funzioni. Il modello console. Interfaccia in modalità console

Lezione 8. La macchina universale

Le query. Lezione 6 a cura di Maria Novella Mosciatti

APPUNTI SUL LINGUAGGIO DI PROGRAMMAZIONE PASCAL

Algebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

Corso ForTIC C2 LEZIONE n. 3

Esempi di algoritmi. Lezione III

Studente: SANTORO MC. Matricola : 528

SID - GESTIONE FLUSSI SALDI

GUIDA ALLA PROGRAMMAZIONE GRAFICA IN C

Corso Online Analista Programmatore Microsoft

ZZZ01 Esercizi Vari. Esercizi per preparazione alla prova pratica di laboratorio

CALCOLATORI ELETTRONICI II

Elementi di semantica denotazionale ed operazionale

Esempio di esecuzione di una pagina JSP: Il client chiede la pagina: sdfonline.unimc.it/info/modulo.jsp;

Array e WHILE. Array nelle Stringhe. Utilizzare le Funzioni. Funzioni

10 - Programmare con gli Array

Gli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori

Indice. Pianificatore

La selezione binaria

Dati importati/esportati

Elementi di semantica operazionale

ENTRARE NEL SISTEMA. Clicca su Entra per entrare nel sistema. PAGINA 1

Codifica: dal diagramma a blocchi al linguaggio C++

PHP. A. Lorenzi, R. Giupponi, D. Iovino LINGUAGGI WEB. LATO SERVER E MOBILE COMPUTING Atlas. Copyright Istituto Italiano Edizioni Atlas

Inizializzazione, Assegnamento e Distruzione di Classi

Concetto di Funzione e Procedura METODI in Java

Progetto Automi e Linguaggi Parser svliluppato con JLex e cup

RAPPRESENTAZIONE GRAFICA DEGLI ALGORITMI

Compilatore risorse display grafico LCD serie IEC-line

PROGRAMMA SVOLTO NELLA SESSIONE N.

3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

Entrare nel sistema. Clicca su Entra per entrare nel sistema. PAGINA 1

Le L z e ione n e d i d V isu s a u l B asi s c Prof.ssa Paola Goi 1

void funzioneprova() { int x=2; cout<<"dentro la funzione x="<<x<<endl; }

Il Software. Il software del PC. Il BIOS

Microsoft Access Maschere

Strutture. Strutture e Unioni. Definizione di strutture (2) Definizione di strutture (1)

. A primi passi con microsoft a.ccepss SommarIo: i S 1. aprire e chiudere microsoft access Start (o avvio) l i b tutti i pro- grammi

Transcript:

Linguaggio di bash per esempi Tre modi per quotare quotare: signica trattare caratteri speciali come normali caratteri es. di aratteri speciali: $, blank, apici, 1. backslash: per quotare un solo carattere speciale 2. ppie virgolette: consente di scrivere stringhe contenenti più caratteri speciali; le variabili precedute da $ vengono sostituite dal loro valore 3. apici inversi: compaiono sul lato destro di un assegnamento, circondan un coman. Il coman viene eseguito e il suo valore memorizzato nella variabile sul lato sinistro Esempio Da linea di coman: > prova="ls -l" > echo $prova ls l > prova=`ls -l` > echo $prova total 2 drwxr--r-- utente1 gruppo1 pippo -rwxrwxrwx utente1 gruppo1 pluto 1

Introduzione agli esempi nei prossimi esempi supporremo di ver eseguire una medesima elaborazione su di un certo numero di le di dati contenuti in una stessa directory Vedremo diversi script che eseguono lo stesso compito, in modi via via più sosticati Useremo tali script per introdurre alcuni dei costrutti principali della programmazione di shell bash Esempio1: uso degli apici inversi DDir=../../Dati/DatiScript temp=`wc -l $DDir/dati1.raw` echo "numero linee di dati1.raw" temp=`wc -l $DDir/dati2.raw` echo "numero linee di dati2.raw" temp=`wc -l $DDir/dati2.raw` echo "numero linee di dati3.raw" Esempio2: comportamento di wc che legge da stdin DDir=../../Dati/DatiScript temp=`wc -l < $DDir/dati1.raw` echo "numero linee di dati1.raw" $temp temp=`wc -l < $DDir/dati2.raw` echo "numero linee di dati2.raw" $temp temp=`wc -l < $DDir/dati3.raw` echo "numero linee di dati3.raw" $temp 2

Istruzione if else if [ condizione ] istruzioni else istruzioni le parentesi [ ] sono obbligatorie come pure lo spazio fra esse e la condizione il ramo else è facoltativo Esempio 3: uso di un parametro e di -eq DDir=../../Dati/DatiScript if [ $1 -eq 1 ] valori: o numeri o stringhe temp=`wc -l $DDir/dati1.raw` echo "numero linee di dati1.raw" $temp temp=`wc -l $DDir/dati2.raw` echo "numero linee di dati2.raw" $temp temp=`wc -l $DDir/dati2.raw` echo "numero linee di dati3.raw" $temp else temp=`wc -l < $DDir/dati1.raw` echo "dati1.raw" $temp temp=`wc -l < $DDir/dati2.raw` echo "dati2.raw" $temp temp=`wc -l < $DDir/dati2.raw` echo "dati3.raw" $temp Operatori di confronto stringhe numeri interi = uguale!= diverso -gt -lt -ge -le -eq -ne maggiore di minore di maggiore uguale minore uguale uguale diverso sono operatori che richieno due operandi 3

Test su le sono operatori che richieno un solo operan -f il le esiste -s il le non è vuoto -r il le è leggibile -w il le è modicabile -x il le è eseguibile -d il le è una directory -h il le è un link simbolico Esempi: [ -r cumento.txt ] [ -h mieidati ] Composizione di condizioni AND [ condizione1 ] && [ condizione2 ] [ condizione1 ] [ condizione2 ] OR Esempio: uso di f e di condizioni composte if [ -d $1 ] echo $1 directory if [ -d $1 ] && [ -w $1 ] echo $1 directory scrivibile 4

For in for variabile in istruzioni lista_valori il corpo di istruzioni all interno di viene eseguito per tutti i valori contenuti nella lista lista_valori lista_valori può essere protta a seguito dell esecuzione di un coman Esempio4: uso di for in lista di tutti i le contenuti DDir=../../Dati/DatiScript in $DDir che hanno estensione raw; *.raw indica tutti i le che if [ $1 -eq 1 ] hanno estensione raw for myle in $DDir/*.raw temp=`wc -l $myle` echo "numero linee di dati1.raw" $temp else for myle in $DDir/*.raw temp=`wc -l < $myle` echo "dati2.raw" $temp Vantaggio: prescin dal numero di le effettivamente contenuti nella directory Altro esempio la lista è protta utilizzan il coman ls for myle in `ls` echo la directory contiene $myle 5

Uso di export e sottoscript export DDir=../../Dati/DatiScript if [ $1 -eq 1 ] sottoscript1 else sottoscript2 for myle in $DDir/*.raw temp=`wc -l $myle` echo "numero linee di dati1.raw" $temp for myle in $DDir/*.raw temp=`wc -l < $myle` echo "dati2.raw" $temp while nito=go occhio agli spazi!!! while [ condizione ] istruzioni while [ $nito!= quit ] echo ancora un giro! echo vuoi nire? [go/quit] read nito Let let let operan1 operatore operan2 variabile = espressione operatori: * + / - % consente di eseguire il calcolo di semplici espressioni in uno script di shell 6

Esempio let ripeti = 1 while [ $ripeti lt 3 ] echo hip hip let ripeti = ripeti + 1 echo hurra! usiamo let per incrementare una variabile di ciclo Esercizio: parte (a) datigrezzi home mieiscript datiela creare nella propria home directory tre sottodirectory: datigrezzi: conterrà i le da elaborare mieiscript: conterrà gli script realizzati datiela: conterrà i risultati dell elaborazione Esercizio: parte (a) home datigrezzi inserire in datigrezzi alcuni le di dati (di fantasia) da elaborare: potete copiare anche quelli usati la lezione scorsa mieiscript datiela copiare in mieiscript gli script usati la lezione scorsa per cercare e spezzare i record iniziali che vericavano un certo pattern in tre parti 7

Esercizio: parte (b) scrivere un programmino awk che: 1. legga in input i dati spezzati in prologo, nucleo, epilogo 2. restituisca in output quattro valori numerici: 1. il num. di record il cui nucleo inizia per la lettera a 2. il num. di record il cui nucleo inizia per la lettera b 3. il num. di record il cui nucleo inizia per la lettera c 4. il num. di record il cui nucleo inizia per la lettera d Esercizio: parte (c) scrivere uno script di shell che: 1. abbia denita una variabile DATI, il cui valore è la directory contenente i dati grezzi e una variabile ELA il cui valore è la directory nella quale verranno salvati i dati elaborati 2. esegue un ciclo su tutti i le contenuti in DATI e per cascuno di questi: 1. applica il programma awk scritto al passo (b) salvan il risultato in un le di output contenuto in ELA (attenzione, il risultato va aggiunto all eventuale contenuto precedente, il le non deve essere riscritto) secon un formato che deniremo 2. esegue lo script di shell contadati, che deniremo Esercizio: formato del le di output nome del primo le elaborato protto dallo script caso A: numero caso B: numero caso C: numero caso D: numero protto dal programma awk nome del secon le elaborato.. 8

Esercizio: contadati contadati restituisce il numero di righe (quindi di record) del le il cui nome è memorizzato nella variabile lecorrente, creata dallo script chiamante e da questo esportata 9