Bash tips: differenze tra le versioni

m
Riga 203: Riga 203:
È bene notare che in tutti gli altri casi, quando si accede al contenuto di una variabile senza quotarla, questa può essere trasformata in più di una singola stringa, in base agli spazi contenuti, e perfino in "niente" se è vuota ("niente" proprio come se non presente nel codice). Se si vuole sempre considerare il contenuto della variabile come una singola stringa, è necessario accederla quotata (tra virgolette), ossia con <code>"$variabile"</code> oppure <code>"${variabile}"</code>.
È bene notare che in tutti gli altri casi, quando si accede al contenuto di una variabile senza quotarla, questa può essere trasformata in più di una singola stringa, in base agli spazi contenuti, e perfino in "niente" se è vuota ("niente" proprio come se non presente nel codice). Se si vuole sempre considerare il contenuto della variabile come una singola stringa, è necessario accederla quotata (tra virgolette), ossia con <code>"$variabile"</code> oppure <code>"${variabile}"</code>.


Questo fatto è di particolare importanza, e una comune sorgente di errori, quando si utilizza la variabile in una condizione (<code>[ ... ]</code>, <code>test ...</code>, ecc...), perché la variabile potrebbe essere sostituita da più di una stringa o perfino da nessuna; e anche quando la si passa a un comando, in particolare se agisce su un file indicato dalla variabile, che potrebbe venir trattato come più di un file. L'utilità nel non quotarla d'altra parte consiste nella possibilità di assegnare tutte le opzioni da passare a un comando, se sono stringhe senza spazi, a una singola variabile, così da passare al comando tutte le stringhe (o nessuna stringa se lasciata vuota) in una volta sola.
Questo fatto è di particolare importanza, e una comune sorgente di errori, quando si utilizza la variabile in una condizione (<code>[ ... ]</code>, <code>test ...</code>, ecc...), perché la variabile potrebbe essere sostituita da più di una stringa o perfino da nessuna; e anche quando la si passa a un comando, in particolare se agisce su un file indicato dalla variabile, che potrebbe venir trattato come una lista di file se il nome contiene spazi (cosa molto comune per i file degli utenti). D'altra parte l'utilità di accedere una variabile senza quotarla consiste nella possibilità di assegnare tutte le opzioni da passare a un comando, se sono stringhe senza spazi, a una singola variabile, così da passare al comando tutte le stringhe (o nessuna stringa se lasciata vuota) in una volta sola.


=== Manipolazione delle stringhe ===
=== Manipolazione delle stringhe ===
3 581

contributi