Bash scripting: differenze tra le versioni

m
nessun oggetto della modifica
mNessun oggetto della modifica
Riga 11: Riga 11:
Un nome di variabile ammette soltanto caratteri alfabetici (maiuscoli e minuscoli), l'underscore ('_') e numeri (non in prima posizione). E il suo contenuto si accede con <code>${nome}</code> oppure con la forma abbreviata <code>$nome</code>.
Un nome di variabile ammette soltanto caratteri alfabetici (maiuscoli e minuscoli), l'underscore ('_') e numeri (non in prima posizione). E il suo contenuto si accede con <code>${nome}</code> oppure con la forma abbreviata <code>$nome</code>.


La forma abbreviata assume che il nome della variabile sia composto da tutti i caratteri validi incontrati. Per esempio la concatenazione <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 valido. Con la concatenazione di variabili è preferibile accedere alle variabili con le graffe.
La forma abbreviata assume che il nome della variabile sia composto da tutti i caratteri validi incontrati. Per esempio la concatenazione <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 valido.


=== Assegnazioni ===
=== Assegnazioni ===
Non si deve usare il <code>'''$'''</code> davanti alla variabile a cui assegnare:
Non si deve usare il <code>'''$'''</code> davanti alla variabile a cui assegnare:
<pre>
<pre>
var=stringa                        # assegno una stringa senza spazi e caratteri speciali
var=stringa                        # assegno una stringa senza spazi e caratteri speciali
var="stringa con spazi"            # assegno una stringa con spazi (e caratteri speciali preceduti da '\')
var="stringa con spazi"            # assegno una stringa con spazi
var='stringa senza apici'          # assegno una stringa contenente spazi e caratteri speciali (ma non apici)
var='stringa senza apici'          # assegno una stringa contenente spazi e caratteri speciali
var=$var2                          # assegno un'altra variabile
var=$var2                          # assegno un'altra variabile
var=${var2}                        # come sopra
var=${var2}                        # come sopra
var="$var2"                        # come sopra (non serve quotare nelle assegnazioni)
var="$var2"                        # come sopra (non serve quotare nelle assegnazioni)
var='$var2'                        # assegno letteralmente $var2 (e non il suo contenuto)
var='$var2'                        # assegno letteralmente $var2 (e non il suo contenuto)
var="\$var2"                        # come sopra, perché $ è preceduto da \
var="\$var2"                        # come sopra, perché $ è preceduto da \
var="${var1} testo ${var2}_${var3}" # assegno una concatenazione di variabili e stringhe
var="${var1} testo ${var2}_${var3}" # assegno una concatenazione di variabili e stringhe
</pre>
</pre>
I caratteri speciali (<code>"</code>, <code>`</code>, <code>$</code> e <code>\</code>) nelle stringhe quotate (tra virgolette) devono essere preceduti dal carattere di escape <code>\</code>, mentre quelle tra apici possono contenere tutti i caratteri ma non l'apice, come si vedrà più avanti.


=== Espansione ===
=== Espansione ===
Riga 524: Riga 522:
|Verificata_da=
|Verificata_da=
:[[Utente:S3v|S3v]] (in Bash tips)
:[[Utente:S3v|S3v]] (in Bash tips)
:[[Utente:HAL 9000|HAL 9000]] 18:35, 6 lug 2014 (CEST)
:[[Utente:HAL 9000|HAL 9000]] 23:57, 6 lug 2014 (CEST)
|Estesa_da=
|Estesa_da=
:[[Utente:S3v|S3v]] (in Bash tips)
:[[Utente:S3v|S3v]] (in Bash tips)
3 581

contributi