2009-09-25 9 views

Répondre

11

Oui, il le fait:

var=${var:-10} 

Même avec autres variables:

unset var 
export def=99 
echo ${var:-${def}} # gives '99' 
export var=7 
echo ${var:-${def}} # gives '7' 
+0

parfait! exactement ce que je cherchais. Besoin d'utiliser * d'autres * variables à coup sûr. –

+0

Strictement parlant, «exporter» n'est pas nécessaire ici. –

6

Oui!

De la page 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. 
2
$ default=10 
$ var=${var:-$default} 
$ echo $var 
10 
$ var=9 
$ var=${var:-$default} 
$ echo $var 
9 
+0

mettre exactement ceci: http://bash.pastebin.com/f4e14cd53 dans un fichier et l'exécuter ne fait aucun écho à la fenêtre de la console. –

+0

Je dois avoir fait quelque chose de mal, cela fonctionne réellement –

+0

btw, votre réponse était aussi géniale! J'aime juste les crochets supplémentaires;) –

Questions connexes