11.07.2015 Views

Amministrare GNU/Linux - Cia

Amministrare GNU/Linux - Cia

Amministrare GNU/Linux - Cia

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

70 CAPITOLO 2. LA SHELL E I COMANDIOltre all’uso di if si possono eseguire cicli condizionali tramite dell’uso delle due istruzioniwhile e until che ripetono l’esecuzione del comando specificato come argomento fintanto chequesto non riporta rispettivamente uno stato di uscita nullo o non nullo, eseguendo ogni voltala lista dei comandi inserita nella sezione seguente delimitata dalle istruzioni do e done, secondouno schema del tipo:while comando; docomando...done(e analogo per until); in questo modo si possono eseguire dei cicli condizionali, basati sulsuccesso (while) o l’insuccesso (until) di un determinato comando che governa la ripetizionedel ciclo.Se invece si devono operare delle scelte opzionali su un valore si può usare l’istruzione case,che prende come parametro una espressione che possa assumere valori diversi (una variabile,una command expansion, ecc.) e che permette di eseguire comandi diversi a seconda dei valoriche detta espressione può assumere, con una sintassi generica del tipo di:case expr invalore1)comando...;;valore2)comando...;;*)comando;...;;esacin cui ogni caso viene terminato da un doppio “;;”, ed i singoli valori con cui viene confrontatal’espressione sono terminati da una parentesi chiusa, ed il valore generico è indicato da un *.L’utilità di case rispetto all’uso di una serie concatenata di if ed elif, oltre alla leggibilità,è che i valori con cui effettuare il controllo supportano i caratteri jolly con lo stesso significatoche questi assumono nel filename globbing, anche se in questo caso vengono applicati alla listadei valori forniti dall’espressione, piuttosto che ai file. Questo consente allora di raggruppare inmaniera flessibile valori simili e trattarli con una unica serie di istruzioni.Infine l’istruzione for permette di compiere dei cicli su un numero stabilito di alternative,definendo una variabile che può essere utilizzata all’interno del ciclo, con una sintassi del tipo:for var in lista ; docomandodonedove var è la variabile che assumerà per ciascun ciclo ciascuno dei possibili valori risultantidall’espansione dell’espressione lista.Una delle caratteristiche comuni a tutti i linguaggi, e la shell non fa eccezione, è quella dellapossibilità di definire delle funzioni cui fare eseguire compiti ripetitivi. Questa capacità aggiungeuna ulteriore funzionalità alla linea di comando in quanto oltre ad eseguire i comandi binari e gli

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!