Valid HTML 4.01 Transitional

Home INTRO Variabili Output Aritmetica Selezioni Ripetizioni Test Funzioni

 

Generalita' Comandi Programmazione Manuale Zenity Free Script

 

 

CSS Valido!

 

 

Informazioni   Corso Linux - Sezione Programmazione - Capitolo Variabili

Variabili, substition, posizionali, di sistema e dell'utente

La "variabile" e' un contenitore usato per memorizzare parole o frasi, dette "stringhe", o numeri; se devono avere sempre lo stesso valore, allora si parla di "costanti", altrimenti il suo contenuto puo' essere cambiato da programma secondo esigenza.

I nomi delle variabili e delle costanti devono iniziare con una lettera e possono contenere lettere, cifre o il carattere underscore "_"; se la variabile deve contenere una frase, occorre racchiudere quest'ultima tra delimitatori, che possono essere "(virgolette doppie) o ' (semplici)

nome_variabile="un'altra cosa"
( usati delimitatori " per non confonderli l'apostrofo nella frase )
nome_variabile="questa e' \"un'altra\" cosa"
( \" nella frase per per non confonderle con i delimitatori. \ e' il metacarattere "escape" )

Per visualizzarne il contenuto della variabile appena definita, daremo il comando:
echo $nome_variabile (il simbolo $ dice alla Bash di sostituire il nome della variabile con il suo valore).

Si possono definire variabili di tipo "array"
a=(1 2 3 4 5) oppure a=(mela "mela granata" 'pera') --- senza spazi vicino alle parentesi ---
con echo ${a[1]} visualizzeremo mela granata (le posizioni interne all'array partono da 0)
con echo ${#a[*]} visualizzeremo il numero totale dei componenti dell'array
con echo $a visualizzeremo il primo elemento dell'array ( equivalente a echo ${a[0]} )
con unset nome_variabile o nome_array eliminiamo la variabile o l'array

Le "substition" fanno sostituire alla Shell il valore della variabile con i risultati di un comando

a=`ls` ( ` "apice inverso" si ottiene premendo AltGr+' )
assegna alla variabile a l'elenco dei file della directory corrente ottenuto con il comando ls
La substition puo' anche essere ottenuta scrivendo a=$(ls)
Altri tipi di substition relative ai file e directory sono i metacaratteri * e ?:
ls a* (visualizza tutti ifile che iniziano con a
ls a?report (visualizza tutti i file che iniziano con a, proseguono con un carattere qualsiasi e terminano con report.

Quando lanciamo uno script (file di testo con #!/bin/bash sulla prima riga e una serie di comandi sulle successive ) possiamo passargli dei parametri che vengono associati dallo script come "variabili posizionali", ossia che il primo parametro viene associato a $1, il secondo a $2 e cosi' via; $0 indica il nome dello script, $# il numero totale dei parametri passati, $* contiene tutti i parametri passati e $? lo stato d'uscita di un comando ( 0 se eseguito senza errori ).

Scriviamo il file prova:
#!/bin/bash
echo -e "nome dello script: $0 - N. parametri passati $# - valori parametri:' $* ' - valore parametro 2: $2 \n"
lst
echo -e "risultato comando lst: $? \n"
echo 'abcd'
echo "risultato comando echo 'abcd': $?"

e diamo i seguenti comandi:
chmod +x prova ( per rendere eseguibile lo script)
./prova "parametro 1" "parametro 2" "parametro 3" e vediamo il risultato:

utente@UBUNTU81:~$ ./prova "parametro 1" "parametro 2" "parametro 3"
nome dello script: ./prova - N. parametri passati 3 - valori parametri:' parametro 1 parametro 2 parametro 3 ' - valore parametro 2: parametro 2

./prova: line 3: lst: command not found
risultato comando lst: 127

abcd
risultato comando echo 'abcd': 0

Le "variabili di sistema" sono quelle che il sistema usa per inizializzare l'ambiente di lavoro. Ad esempio
PATH (ELENCO DIRECTORY DOVE TROVARE I COMANDI), HOME (PERCORSO DIRECTORY DELL'UTENTE ATTUALE)...
Tali variabili devono essere scritte in maiuscolo e sono visualizzabili con il comando
echo $NOME_VARIABILE

Le "variabili utente" sono quelle definite da noi

 

Copyright ©2009 Ciro Nuzzo - proglinux.altervista.org