Sono nuovo di bash ma ho fatto molto PHP e Javascript.BASH: supporta variabili condizionali come var = "test"? "1": "2"
Esiste una sorta di equivoco a questo PHP?
$default = 10;
$var = (!$var) ? $default : $var;
Grazie
Sono nuovo di bash ma ho fatto molto PHP e Javascript.BASH: supporta variabili condizionali come var = "test"? "1": "2"
Esiste una sorta di equivoco a questo PHP?
$default = 10;
$var = (!$var) ? $default : $var;
Grazie
Sì, lo fa:
var=${var:-10}
anche con altre variabili:
unset var
export def=99
echo ${var:-${def}} # gives '99'
export var=7
echo ${var:-${def}} # gives '7'
Sì!
Dalla pagina man:
${parameter:-word}
Use Default Values. If parameter is unset or null, the expansion of word
is substituted. Otherwise, the value of parameter is substituted.
${parameter:=word}
Assign Default Values. If parameter is unset or null, the expansion of word
is assigned to parameter. The value of parameter is then substituted.
Positional parameters and special parameters may not be assigned to in this way.
${parameter:?word}
Display Error if Null or Unset. If parameter is null or unset, the expansion of word (or a message to
that effect if word is not present) is written to the standard error and the shell, if it is not inter‐
active, exits. Otherwise, the value of parameter is substituted.
${parameter:+word}
Use Alternate Value. If parameter is null or unset, nothing is substituted, otherwise the expansion of
word is substituted.
$ default=10
$ var=${var:-$default}
$ echo $var
10
$ var=9
$ var=${var:-$default}
$ echo $var
9
mettendo esattamente questo: http://bash.pastebin.com/f4e14cd53 in un file ed eseguendolo non fa eco alla finestra della console. –
Devo aver fatto qualcosa di sbagliato, che funziona davvero –
btw, la tua risposta è stata fantastica! Mi piacciono solo le parentesi aggiuntive;) –
perfetto! esattamente quello che stavo cercando. È necessario utilizzare * altre variabili * di sicuro. –
In senso stretto, "export" non è necessario qui. –