3 581
contributi
S3v (discussione | contributi) (- template "Versioni compatibili") |
(→Espansione di parametro (stringa): correzione esempio) |
||
Riga 9: | Riga 9: | ||
Modificatori: | Modificatori: | ||
* <code>${#var}</code> ritorna il numero di caratteri della stringa contenuta in $var. Espande sempre a una singola stringa; | * <code>${#var}</code> ritorna il numero di caratteri della stringa contenuta in ${var}. Espande sempre a una singola stringa; | ||
* <code>${!var}</code> (non ''POSIX'') ritorna il contenuto della variabile, il cui nome è contenuto in $var (accesso indiretto); | * <code>${!var}</code> (non ''POSIX'') ritorna il contenuto della variabile, il cui nome è contenuto in ${var} (accesso indiretto); | ||
* <code>${var:-stringa}</code> (valore di default, se nulla) ritorna il contenuto della variabile, se definita e non è nulla, altrimenti espande stringa che può essere anche un'altra variabile; | * <code>${var:-stringa}</code> (valore di default, se nulla) ritorna il contenuto della variabile, se definita e non è nulla, altrimenti espande stringa, che può essere anche un'altra variabile. Non cambia il contenuto di ${var}; | ||
* <code>${var-stringa}</code> (valore di default, se non definita) ritorna il contenuto della variabile, se definita (anche se nulla), altrimenti espande stringa, che può anche essere un'altra variabile; | * <code>${var-stringa}</code> (valore di default, se non definita) ritorna il contenuto della variabile, se definita (anche se nulla), altrimenti espande stringa, che può anche essere un'altra variabile. Non cambia il contenuto di ${var}; | ||
* modificatori di assegnazione e valori alternativi, non trattati perché sconsigliati per la leggibilità del codice e non sono fondamentali. Si noti invece che l'uso dell'espansione di parametro con valore di default è l'unico modo per distinguere una variabile non definita da una nulla; | * modificatori di assegnazione e valori alternativi, non trattati perché sconsigliati per la leggibilità del codice e non sono fondamentali. Si noti invece che l'uso dell'espansione di parametro con valore di default è l'unico modo per distinguere una variabile non definita da una nulla; | ||
* manipolatori di stringa (rimozione, sostituzione, trasformazione in uppercase/lowercase), trattati tra breve. | * manipolatori di stringa (rimozione, sostituzione, trasformazione in uppercase/lowercase), trattati tra breve. | ||
Riga 20: | Riga 20: | ||
var2=${var-stringa} # assegna stringa (perché $var non è definita) | var2=${var-stringa} # assegna stringa (perché $var non è definita) | ||
printf %s\\n "$var2" # stampa: stringa | printf %s\\n "$var2" # stampa: stringa | ||
var="" # assegna stringa nulla | var="" # assegna a var una stringa nulla | ||
var2=${var-stringa} # assegna il contenuto (nullo) di $var (perché è definita) | var2=${var-stringa} # assegna il contenuto (nullo) di $var (perché è definita) | ||
printf %s\\n "$var2" # stampa una riga vuota | printf %s\\n "$var2" # stampa una riga vuota | ||
var2=${var:-stringa} # assegna stringa (perché $var è nulla) | var2=${var:-stringa} # assegna stringa (perché $var è nulla) | ||
printf %s\\n "$var2" # stampa: stringa | printf %s\\n "$var2" # stampa: stringa | ||
rif=" | rif="var2" # rif contiene il nome (senza $) di $var2 | ||
var=${!rif} # equivalente a: var=$var2 | |||
printf %s\\n "$ | printf %s\\n "$var" # stampa: stringa | ||
printf %s\\n ${# | printf %s\\n ${#var} # stampa: 7 (la lunghezza di "stringa") | ||
</pre> | </pre> | ||
contributi