Bash tips: differenze tra le versioni

m
Riga 187: Riga 187:
=== Altre variabili ===
=== Altre variabili ===


In Bash ogni variabile (di default) è trattata come una stringa, e un nome di variabile ammette soltanto caratteri alfabetici (maiuscoli e minuscoli), l'underscore "_" e numeri (questi ultimi purché non in prima posizione).
In Bash ogni variabile (di default) è trattata come una stringa, e come nella maggior parte dei linguaggi di programmazione un nome di variabile ammette soltanto caratteri alfabetici (maiuscoli e minuscoli), l'underscore "_" e numeri (questi ultimi purché non in prima posizione).
Si accede dunque con <code>${nome}</code> oppure con la forma abbreviata <code>$nome</code>. Si noti che la forma abbreviata considera il nome della variabile come composto da tutti i caratteri validi incontrati (per esempio <code>"$nome$cognome"</code> è equivalente a <code>"${nome}${cognome}"</code>, ma <code>"$nome_$cognome"</code> non lo è a <code>"${nome}_${cognome}"</code> perché <code>nome_</code> sarebbe un nome di variabile valido). In caso di concatenazione di variabili è preferibile accedere alle variabili con le graffe, o in alternativa delimitare dalle virgolette o da un carattere '''\''' (per esempio: <code>"$nome"_"$cognome"</code> e <code>"$nome\_$cognome"</code> corrisponde a <code>"${nome}_${cognome}"</code>).
 
Il contenuto di una variabile si accede con <code>${nome}</code> oppure con la forma abbreviata <code>$nome</code>.
 
Si noti che la forma abbreviata considera il nome della variabile come composto da tutti i caratteri validi incontrati. Per esempio <code>"$nome$cognome"</code> è equivalente a <code>"${nome}${cognome}"</code>, ma <code>"$nome_$cognome"</code> non lo è a <code>"${nome}_${cognome}"</code> perché <code>nome_</code> (con underscore finale) sarebbe un nome di variabile valido. In caso di concatenazione di variabili è preferibile accedere alle variabili con le graffe, o in alternativa (meno elegante) delimitarle dalle virgolette o da un carattere '''\''' posto dopo il nome; infatti <code>"$nome"_"$cognome"</code> e <code>"$nome\_$cognome"</code> corrispondono a <code>"${nome}_${cognome}"</code>.


Nelle assegnazioni non si deve usare il <code>'''$'''</code>, salvo che per accedere al contenuto di altre variabili. Ed è superfluo anche l'uso delle virgolette, salvo concatenazioni e spazi in cui è preferibile assieme all'uso delle graffe:
Nelle assegnazioni non si deve usare il <code>'''$'''</code>, salvo che per accedere al contenuto di altre variabili. Ed è superfluo anche l'uso delle virgolette, salvo concatenazioni e spazi in cui è preferibile assieme all'uso delle graffe:
3 581

contributi