2013-04-04 28 views
1

在shell腳本中,我們使用使用的shell腳本,而出口變量

export VAR1=${VAR1:-KK} 

export DATE=${DATE:=$(cat ${DATEDIR}/today_date)} 

我已經在許多腳本看到了這一點。

請給我解釋一下,或者參考一個好的鏈接,瞭解爲什麼使用:-:=以及它應該在哪裏使用。

+0

你讀過關於參數替換的bash手冊頁的部分了嗎? – Barmar 2013-04-04 09:11:48

+0

在賦值給同一個變量的RHS上使用':='似乎對我來說是多餘的。我認爲,無論是'export DATE = $ {DATE:-...}'還是'export $ {DATE:= ...}'都是一樣的。 – chepner 2013-04-04 12:49:16

回答

1

bash手冊頁的Parameter expansion部分:

$ {參數:-word} 使用默認值。如果參數未設置或爲空,則替換單詞的擴展。否則,將替換參數 的值。

$ {parameter:= word} 指定默認值。如果參數未設置或爲空,則將單詞的擴展分配給參數。然後代入 參數的值。以這種方式可能不會分配位置參數和特殊參數 。

在參數擴展期間還有很多其他選項,請參閱所有這些選項的手冊頁。