2016-05-23 31 views
0

任何人都可以在Bash中向我解釋這種語法嗎?

MY_BASE_DIR=${MY_BASE_DIR:-/data/software/xyz} 

上述命令運行時究竟發生了什麼?

+1

見http://www.tldp.org/LDP/abs/html/parameter-substitution.html – andlrc

回答

4

這是爲MY_BASE_DIR指定默認值。從男子bash:

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

它等同於:

if [[ -z "$MY_BASE_DIR" ]]; then 
    MY_BASE_DIR="/data/software/xyz" 
fi 
+1

對於那些希望谷歌/搜索進一步,術語是「參數擴展」。 http://wiki.bash-hackers.org/syntax/pe – ffledgling