Questo script Bash (naked_variables.sh) illustra le circostanze in cui una variabile viene utilizzata senza il prefisso dollaro ($), ovvero quando le si sta assegnando un valore piuttosto che facendovi riferimento.
Lo script dimostra vari scenari di assegnazione di variabili:
-
Assegnazione Diretta:
a=879 echo "The value of \"a\" is $a."
Qui,
aè "nuda" quando le viene assegnato il valore879. Per farvi riferimento (cioè per recuperare il suo valore), si usa$a. -
Assegnazione con
let:let a=16+5 echo "The value of \"a\" is now $a."
Il comando
letesegue un'operazione aritmetica e assegna il risultato. Anche qui,aè senza$al momento dell'assegnazione. -
In un ciclo
for:for a in 7 8 9 11 do echo -n "$a " done
Nel ciclo
for, la variabileaassume sequenzialmente i valori7,8,9,11. Durante ogni iterazione, quandoariceve il nuovo valore, è in modalità di assegnazione (senza$). Quando stampata,echo -n "$a ", viene referenziata con$. -
In un'istruzione
read:echo -n "Enter \"a\" " read a echo "The value of \"a\" is now $a."
Il comando
readlegge l'input dell'utente dalla console e lo assegna alla variabile specificata. Quando si usaread a, la variabileaè senza$, poiché le si sta assegnando il valore digitato dall'utente.
- Salva il codice in un file, ad esempio
naked_variables.sh. - Rendilo eseguibile:
chmod +x naked_variables.sh. - Eseguilo nel tuo terminale:
Durante l'esecuzione, lo script ti chiederà di inserire un valore per
./naked_variables.sh
a.
- La regola generale in Bash è:
- Quando si assegna o si modifica il valore di una variabile, si usa il suo nome senza il prefisso
$. - Quando si recupera o si referenzia il valore di una variabile, si usa il suo nome con il prefisso
$.
- Quando si assegna o si modifica il valore di una variabile, si usa il suo nome senza il prefisso
- Questa distinzione è fondamentale per comprendere come manipolare le variabili negli script Bash.