${ varname :- word }: Wenn varname existiert und nicht null ist, gibt er den Wert von varname zurück, ansonsten gibt Word zurück. Wird verwendet, um einen Standardwert zurückzugeben, wenn eine Variable nicht existiert oder nicht definiert ist. Wenn es ${ varname - word } ist, kann es null sein, wenn der varname existiert, z. B. definieren wir myparam=, geben den Wert des varname zurück, andernfalls das Wort zurück. Du kannst auch ":" löschen, das die gleiche Bedeutung hat und nicht wiederholt wird.
${ varname := word }: Wenn varname existiert und nicht null ist, gibt er den Wert von varname zurück, weist ihm ansonsten einen Wortwert zu und gibt diesen Wert zurück. Wird verwendet, um einen Standard für eine Variable festzulegen, die nicht existiert oder nicht definiert ist. Für Positionsparameter können nur lesegeschützt und nicht zugewiesen werden.
${ varname :? Nachricht }: Wenn varname existiert und nicht null ist, den Wert von varname zurückgibt, andernfalls die Information varname:message ausgibt, und das Abbruchskript, falls wir die Nachricht nicht setzen, wird der Standard-Parameter "Parameter null oder nicht gesetzt" verwendet. Wird verwendet, um Fehler zu überprüfen, bei denen Variablen nicht definiert sind.
${ varname :+ Wort }: Wenn varname existiert und nicht null ist, gibt er den Wert des Wortes zurück, ansonsten gibt er null zurück. Wird verwendet, um das Vorhandensein oder Fehlen von Variablen zu erkennen.
${ varname : offset : length }: Operation zur Erholung der Unterzeichenkette. Er gibt eine Zeichenkette der Länge aus der versetzten Position im Varname zurück. Die erste Position ist 0, wenn die Länge nicht angegeben ist oder ungültig ist (weniger als 0), werden alle Zeichen nach dem Offset zurückgegeben, und wenn es {@:offset:length} ist, wird der Gesamtlängenparameter des Skriptparameters aus dem ersten Offset-Parameter zurückgegeben.
Erstellen Sie ein neues test.sh Testskript wie folgt:
|