2009-07-22 14 views
4

Was genau macht das folgende Bash-Snippet? $ {2: - $ {1}}

Antwort

10

"Verwenden Sie das zweite Argument, aber wenn keiner dann der erste".

5

${var:-default} wertet den Wert von $var, es sei denn, $var nicht in dem Fall eingestellt wird wertet sie aus dem Text "default". $1, $2 usw. sind die Befehlszeilenargumente für Ihr Programm (oder Ihre Funktion). Wenn Sie die beiden zusammenfügen, bedeutet das, dass $2 zurückgegeben wird, wenn zwei Argumente übergeben wurden, andernfalls geben Sie $1 zurück.

1

Es bedeutet "Verwenden Sie das zweite Argument, wenn das erste nicht definiert ist oder leer, sonst verwenden Sie das erste". Die Form "$ {2 - $ {1}}" (kein ':') bedeutet "Benutze die zweite, wenn die erste nicht definiert ist (aber wenn die erste als leer definiert ist, benutze sie)".