Soy nuevo en bash pero he hecho muchos PHP y Javascript.BASH: ¿Admite variables condicionales como var = "test"? "1": "2"
¿Existe algún tipo de equivalencia a este PHP?
$default = 10;
$var = (!$var) ? $default : $var;
Gracias
Soy nuevo en bash pero he hecho muchos PHP y Javascript.BASH: ¿Admite variables condicionales como var = "test"? "1": "2"
¿Existe algún tipo de equivalencia a este PHP?
$default = 10;
$var = (!$var) ? $default : $var;
Gracias
Sí, lo hace:
var=${var:-10}
Incluso con otras variables:
unset var
export def=99
echo ${var:-${def}} # gives '99'
export var=7
echo ${var:-${def}} # gives '7'
Sí!
Desde la página del manual:
${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
poniendo exactamente esto: http://bash.pastebin.com/f4e14cd53 en un archivo y ejecutándolo no echos nada a la ventana de la consola. –
Debo haber hecho algo mal, eso realmente funciona –
por cierto, ¡tu respuesta también fue genial! Simplemente me gustan los corchetes adicionales;) –
perfecto! Exactamente lo que estaba buscando. Necesita usar * otras * variables de seguro. –
Estrictamente hablando, 'exportar' no es necesario aquí. –