
Ich habe gerade entdeckt
default="no parameter provided"
echo ${1:-$default} # in a script
Wie heißt das? Ist es eingebaut? Funktioniert es so, wie es aussieht?
Antwort1
Dies ist Teil vonShell-Parametererweiterungund ist eingebaut injede POSIX-Shell:
${parameter:-word}
WennParameternicht gesetzt oder null ist, wird die Erweiterung vonWortersetzt wird. Andernfalls wird der Wert vonParameterersetzt wird.
Wenn in Ihrem Beispiel ${1}
nicht nicht gesetzt oder null ist, wird sein Wert ausgegeben, andernfalls ${default}
wird stattdessen der Wert von ausgegeben.
Antwort2
Es ist Parameter Expansion
, beschrieben in inBash-Manpagedie Sie auch lokal aufrufen können mit man bash
:
${parameter:-word}
Use Default Values. If parameter is unset or null, the
expansion of word is substituted. Otherwise, the value
of parameter is substituted.