Guida Shell Scripting
In questa guida affronteremo un argomento che, in Italia non trova, almeno a mio avviso, uno spazio adeguato costringendo troppo spesso gli sviluppatori interessati a rivolgersi a trattazioni in lingua inglese. Oggetto della nostra guida sarà la pratica definita di "Shell scripting", ovvero la realizzazione di script eseguibili nella shell, pratica molto utile e diffusa nella gestione di un OS Linux.
Prima di addentrarci nei meandri della programmazione ritengo opportuno avvertire che la presente guida si basa sulla cd. Bourne Shell, ovvero la shell standard (/bin/sh) dei sistemi Unix Like scritta da Steven R. Bourne (esistono altri tipi di shell, molte delle quali - Bash, ksh, pdksh, zsh - compatibili con questa).
L'argomento, che ha un'importanza crescente anche a seguito della grande e continua diffusione di sistemi Linux in ambito domestico ma soprattutto in ambito lavorativo, verrà trattato partendo - come nostro solito - dalle basi al fine di consentire a chiunque abbia una minima conoscenza di Linux di affrontare l'argomento senza troppa fatica.
Partiamo quindi dalla definizione del nostro ambito di competenza, lo Shell scripting, appunto.
Lo Shell scripting consisite nella pratica di scrittura di script (file testuali contenenti un insieme organico di istruzioni) eseguibili in ambiente Shell al fine dell'esecuzione di compiti, più o meno complessi, sulla base della combinazione dei comandi tipici offerti dal sistema operativo.
Come abbiamo visto nella definizione di cui sopra, tali file sono caratterizzati dall'eseguibilità cioè dal fatto di avere un particolare attributo di fruizione che consiste, appunto, nella possibilità di essere eseguito dal sistema operativo.
Vi ricordo che Linux prevede, per ogni file, tre diversi attributi che possono essere diversamente combinati:
r = lettura w = scrittura x = esecuzione
Affinchè un file sia eseguibile all'interno della shell è necessario che gli venga assegnato il relativo permesso (+x) attraverso il comando chmod:
chmod +x nomefile
Nella prossima lezione vedremo, passo passo, come scrivere il nostro primo script.Il primo script – Guida Shell Scripting
Vediamo ora come scrivere il nostro primo script. Effettuiamo il login nella Shell ed iniziamo a lavorare...
Per prima cosa vi consiglio di creare nella Root una directory apposita dove buttare gli script (giusto per non sporcare il sistema). Quindi (supponendo di essere già nella Root) digitiamo:
mkdir miei_script
ora, ovviamente, entriamoci dentro:
cd miei_script
Ora creiamo un file nuovo chiamato "primo.sh" (l'estensione...
Le variabili – Guida Shell Scripting
Come tutti in linguaggi di programmazione anche qui particolare attenzione deve essere rivolta all'argomento variabili.
Le varibili, come sappiamo, sono dei "contenitori" (porzioni di memoria) nei quali è possibile archiviare determinate informazioni (generalmente stringhe di testo o valori numerici) che è possibile richiamare, modificare o elaborare all'interno del programma.
In fase di assegnazione ogni variabile è identificata da una denominazione...
Altri tipi di variabili – Guida Shell Scripting
Le variabili viste fino ad ora sono dette variabili locali, sono definite dal programmatore e cessano di esistere non appena termina lo script.
Altro tipo di variabili sono le cd. variabili di Shell, variabili automaticamente inizializzate all'avvio della shell che permettono di riferirsi agli argomenti su linea di comando.
Sono detti argomenti su linea di comando quegli argomenti passati al programma...
Wildcards e altri caratteri speciali – Guida Shell Scripting
Desidero dedicare un paragrafo di questa guida ai caratteri speciali, ovvero a quei caratteri che hanno un comportamento anomalo all'interno di uno script in quanto ad essi è assegnato, di default, una specifica funzione ulteriore alla loro semplice rappresentazione.
Primo carattere da considerare in questa sede è l'asterisco (*) anche detto wildcards.
Proviamo a digitare quanto segue:
echo *
Ci accorgeremo subito...
Operatori – Guida Shell Scripting
In questo lezione della nostra guida allo scripting nella Shell di Linux passiamo in rasegna i cd. operatori suddividendoli in gruppi
Operatori Matematici - Si utilizzano solo ed esclusivamente con valori numerici
+Somma-Sottrazione*Moltiplicazione/Divisione**Esponenzia il primo numero al secondo%Ritorna il resto di una divisione
Per effettuare operazioni matematiche sulle variabili è necessario utilizzare alternativamente:
il comando esterno expr tra apici gravi
le doppie parentesi tonde...
Istruzioni di controllo: IF – Guida Shell Scripting
le istruzioni di controllo sono, come dice già il loro nome, un insieme di istruzioni che controllano (appunto) il funzionamento del programma sulla base del verificarsi o meno di date condizioni. Per prima cosa vediamo il funzionamento del costrutto if.
Una cosa molto importante da ricordare è che le condizioni vanno sempre inserite all'interno delle parentesi quadre avendo cura...
Istruzioni di controllo: CASE – Guida Shell Scripting
Una valida alternativa ad if è offerta dal costrutto case.
Con case, nella sostanza, si costruisce una casistica di evenienze ad ognuna delle qiuali è associata una data risposta del programma.
Vediamo subito un esempio e riprendiamo il primo visto nel passato paragrafo rivisto e corretto con l'utilizzo di case:
#!/bin/sh
#Faccio la mia domanda
echo -n "Qual'è il nome di Garibaldi?...
I cicli FOR e WHILE – Guida Shell Scripting
Un ciclo (o iterazione) è una ripetizione di una determinata azione per un dato numero di volte sulla base di un dato delimitatore. Per realizzare un ciclo in ambiente di shell scripting si usa for oppure while. Vediamoli entrambi.
Il ciclo for
Il ciclo FOR crea un iterazione sulla base di una data lista di valori o di una data condizione....
Scrivere una funzione – Guida Shell Scripting
Anche lo shell scripting prevede la possibilità di scrivere delle funzioni.
Una funzione è una porzione di codice indipendente alla quale viene assegnata, appunto, una specifica funzione all'interno del programma.
Scrivere funzioni è molto utile quando si deve compire una determinata operazione complessa più di una volta all'interno dello stesso programma o della stessa suite di programmi.
Grazie alle funzioni...
Conclusioni – Guida Shell Scripting – Guida Shell Scripting
Sulla base di quanto sin qui esposto dovreste essere già in grado di scrivere dei (più o meno) semplici script per la Shell che vi aiuteranno nella gestione del vostro OS Linux permettendovi di creare, ad esempio, comandi complessi in grado di svolgere funzioni originariamente non previste dal sistema operativo.
Ad esempio potreste programmare uno script per la pulizia dei...