<Precedenti | Contenuti | Succ.>
Espansioni per gestire variabili vuote
Diverse espansioni di parametri sono pensate per gestire variabili inesistenti e vuote. Queste espansioni sono utili per gestire parametri posizionali mancanti e assegnare valori predefiniti ai parametri.
${parametro:-parola}
If parametro non è impostato (cioè non esiste) o è vuoto, questa espansione risulta nel valore di parola. Se parametro non è vuoto, l'espansione risulta nel valore di parametro.
[io@linuxbox~]$ pippo=
[io@linuxbox~]$ echo ${foo:-"sostituisci il valore se non impostato"}
sostituisci il valore se non impostato [me@linuxbox ~]$ echo $foo
[io@linuxbox~]$ foo=bar
[io@linuxbox~]$ echo ${foo:-"sostituisci il valore se non impostato"}
bar
[io@linuxbox~]$ echo $foo
bar
[io@linuxbox~]$ pippo=
[io@linuxbox~]$ echo ${foo:-"sostituisci il valore se non impostato"}
sostituisci il valore se non impostato [me@linuxbox ~]$ echo $foo
[io@linuxbox~]$ foo=bar
[io@linuxbox~]$ echo ${foo:-"sostituisci il valore se non impostato"}
bar
[io@linuxbox~]$ echo $foo
bar
${parametro:=parola}
If parametro non è impostato o è vuoto, questa espansione risulta nel valore di parolaInoltre, il valore di parola è assegnato a parametro. Se parametro non è vuoto, l'espansione risulta nel valore di parametro.
[io@linuxbox~]$ pippo=
[io@linuxbox~]$ echo ${foo:="valore predefinito se non impostato"}
valore predefinito se non impostato [me@linuxbox ~]$ echo $foo valore predefinito se non impostato [me@linuxbox ~]$ foo=bar
[io@linuxbox~]$ echo ${foo:="valore predefinito se non impostato"}
bar
[io@linuxbox~]$ echo $foo
bar
[io@linuxbox~]$ pippo=
[io@linuxbox~]$ echo ${foo:="valore predefinito se non impostato"}
valore predefinito se non impostato [me@linuxbox ~]$ echo $foo valore predefinito se non impostato [me@linuxbox ~]$ foo=bar
[io@linuxbox~]$ echo ${foo:="valore predefinito se non impostato"}
bar
[io@linuxbox~]$ echo $foo
bar
Nota: i parametri posizionali e altri parametri speciali non possono essere assegnati in questo modo.
${parametro:?parola}
If parametro non è impostato o è vuoto, questa espansione provoca l'uscita dello script con un errore e il contenuto di parola vengono inviati all'errore standard. Se parametro non è vuoto, l'espansione risulta nel valore di parametro.
[io@linuxbox~]$ pippo=
[io@linuxbox~]$ echo ${foo:?"il parametro è vuoto"}
bash: foo: il parametro è vuoto [me@linuxbox ~]$ eco $?
1
[io@linuxbox~]$ foo=bar
[io@linuxbox~]$ echo ${foo:?"il parametro è vuoto"}
bar
[io@linuxbox~]$ eco $?
0
[io@linuxbox~]$ pippo=
[io@linuxbox~]$ echo ${foo:?"il parametro è vuoto"}
bash: foo: il parametro è vuoto [me@linuxbox ~]$ eco $?
1
[io@linuxbox~]$ foo=bar
[io@linuxbox~]$ echo ${foo:?"il parametro è vuoto"}
bar
[io@linuxbox~]$ eco $?
0
${parametro:+parola}
If parametro non è impostato o è vuoto, l'espansione non produce nulla. Se parametro non è vuoto, il valore di parola è sostituito parametro; tuttavia, il valore di parametro non è cambiato.
[io@linuxbox~]$ pippo=
[io@linuxbox~]$ echo ${foo:+"sostituisci il valore se impostato"}
[io@linuxbox~]$ foo=bar
[io@linuxbox~]$ echo ${foo:+"sostituisci il valore se impostato"}
[io@linuxbox~]$ pippo=
[io@linuxbox~]$ echo ${foo:+"sostituisci il valore se impostato"}
[io@linuxbox~]$ foo=bar
[io@linuxbox~]$ echo ${foo:+"sostituisci il valore se impostato"}
valore sostitutivo se impostato
valore sostitutivo se impostato