2014-09-25 81 views
0

在某些語言中,如果未設置,您可以將其他變量分配給另一個變量。像這樣:如果未設置分配其他變量

// a should be === c 
var a = b | c // b is empty and c=1 

在bash你可以瀨默認值,像這樣:

a=${b:-c} 

但是這會給你c,而不是c

值我試過

a=${b:-$c} 

但這不起作用我該如何做?

+0

它應該; 'C = 5;一個= $ {B: - $ C}; echo $ a'輸出5。 – chepner 2014-09-25 19:22:49

回答

2

a=${b:-$c}工作正常,只要c設置爲某個值。否則a將被設置爲null

c=4 
unset b 
a=${b:-$c} 
echo $a 

都給作爲c

unset b 
unset c 
a=${b:-$c} 
echo $a 

4值輸出會給輸出(空)

1
${parameter:=word} 

從人的bash:

 
Assign Default Values. If parameter is unset or null, the expansion 
of word is assigned to parameter. The value of parameter is then 
substituted. 

${parameter:-word} 
 
Use Default Values. If parameter is unset or null, the expansion 
of word is substituted. Otherwise, the value of parameter is 
substituted.