2016-11-23 2 views
0

Was bedeutet die folgende Notation in Unix?Unix-Befehle Interpretation

:- or := 

was tut die folgenden Mittel

if [ ${path:=0} -eq 1 ] 
if [ ${path:-0} -eq 1 ] 
+1

Bietet Standardwerte für Variablen. Werfen Sie einen Blick auf http://unix.stackexchange.com/questions/122845/using-ab-for-variable-assignment-in-scripts – cjungel

Antwort

1

Die : ist ein Parameter Expansion, also wenn zum Beispiel $path nicht gesetzt ist, wird es auf 0 in Ihrem Beispiel-Code zurückgreifen.

Mit einem Bindestrich wird der Wert verwendet und := wird den Wert zuweisen.

Zusätzliche Informationen durch Kommentar aufgefordert:

In Ihrem Beispiel eine Variable verwenden $path genannt, so die := mit so gehen wird: wenn $ Pfad nicht gesetzt ist, setzen Sie $ Pfad auf den Wert (0 in Ihrem Fall). Jedes Mal, wenn Sie $ path danach verwenden, würde es auf Ihren Wert 0 gesetzt werden.

Verwenden Sie einfach verwenden Sie einfach den vorgegebenen Wert (wieder, 0 in Ihrem Fall) und nicht zu $ ​​Pfad zuordnen. Irgendwelche Verwendungen von $ path sind danach noch nicht gesetzt.

+0

Mit einem Bindestrich: - wird den Wert verwenden, und mit: = wird den Wert zuweisen . Ich bin nicht sicher, ob ich das bekomme, "den Wert verwenden" und den Wert zuweisen? – redsoxlost

+0

Ich füge zusätzliche Informationen zur Antwort für Sie hinzu. – Stuart