2016-05-23 8 views
0

Kann mir jemand diese Syntax in Bash erklären?

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

Was genau passiert, wenn der obige Befehl ausgeführt wird?

+1

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

Antwort

4

Es ist ein Standardwert für MY_BASE_DIR anzugeben. Von Mann bash:

$ {parameter: -Wort}
Standardwerte verwenden. Wenn der Parameter nicht gesetzt oder null ist, wird die Wortausdehnung ersetzt. Andernfalls wird der Wert des Parameters ersetzt.

Es ist äquivalent zu:

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

Siehe Für die Suche weiter Google/Suche, der Begriff ist "Parametererweiterung". http://wiki.bash-hackers.org/syntax/pe – ffledgling