back to top

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 univoca alla quale segue il simbolo uguale (=) che precede il valore che le viene assegnato (attenzione: non devono esserci spazi tra il nome della variabile, l’uguale ed il valore assegnato!).

Facciamo subito un esempio riprendendo il file “primo.sh” che abbiamo visto nella passata lezione:

#!/bin/sh
MIA_VAR="Lo script funziona..."
echo ${MIA_VAR}
Nell’esempio qui sopra non abbiamo fatto altro che riprendere l’esempio della passata lezione semplicemente archiviando la frase di conferma all’interno della variabile MIA_VAR poi stampata da echo.

Avrete notato che, nella fase di assegnazione, il simbolo uguale è seguito dalla virgolette… queste, infatti, sono necessarie in quanto il valore archiviato nella variabile (nel nostro caso una frase) contiene degli spazi. Se non usassimo le virgolette la variabile MIA_VAR avrebbe come valore solamente il blocco di testo che precede il primo spazio bianco mentre il resto verrebbe ignorato.

Ritengo opportuno segnalare da subito che qualora si volesse assegnare ad una variabile la risultatnte di un dato comando sarà necessario sostituire le virgolette con accenti gravi (backtick). Vedi esempio:

#!/bin/sh
OGGI=`date +%D`
echo "la data di oggi è "${OGGI}
Per richiamare una variabile viene utilizzato il simbolo del dollaro ($) seguito (senza spazio) dal nome della varibile stessa (preferibilmente rinchiuso tra parentesi graffa).

E’ opportuno segnalare che uno degli utilizzi tipici delle variabili è quello di contenere valori passati real-time dall’utente. Per fare ciò si usa il comando read. Facciamo un esempio:

#!/bin/sh

#Uso l'opzione -n per non nadare a capo
echo -n "Come ti chiami?"

#leggo dallo standard input il valore digitato 
#dall'utente e lo assegno alla variabile TUO_NOME
read TUO_NOME

#Stampo a video il saluto personalizzato
echo "Ciao "${TUO_NOME}
Salvate, settate il permesso di esecuzione ed eseguite il file. Il risultato: lo script vi porrà la domanda, voi rispondete… ed eccovi un bel saluto personalizato!

Per finire non resta che dire che il contenuto di una variabile è, per definizione, variabile… basterà, infatti, effettuare una nuova assegnazione alla stessa variabile per cambiarne il contenuto. Qualora invece si voglia semplicemente svuotare una variabile del suo contenuto useremo:

unset MIA_VAR
che avrà come effetto, appunto, lo suotamento della variabile MIA_VAR.

Pubblicità
Massimiliano Bossi
Massimiliano Bossi
Stregato dalla rete sin dai tempi delle BBS e dei modem a 2.400 baud, ho avuto la fortuna di poter trasformare la mia passione in un lavoro (nonostante una Laurea in Giurisprudenza). Adoro scrivere codice e mi occupo quotidianamente di comunicazione, design e nuovi media digitali. Orgogliosamente "nerd" sono il fondatore di MRW.it (per il quale ho scritto centinaia di articoli) e di una nota Web-Agency (dove seguo in prima persona progetti digitali per numerosi clienti sia in Italia che all'estero).