Stringbearbeitung (Variablen)

Aufruf Beschreibung
${name:n:m} liefert Teil eines Strings
n = Offset, negativ = vom Ende her (in diesem Fall muss ein Leerzeichen vor dem Minus stehen!)
m = Anzahl (kann entfallen)
${name#a} entfernt den Anfang, wenn dieser mit a übereinstimmt
a = Suchstring (Windcards (?,*) sind erlaubt)
${name##*a} entfernt alle Übereinstimmungen mit a vom Anfang her
a = Suchstring (Windcard „*“ notwendig!)
${name%a} entfernt das Ende, wenn dieses mit a übereinstimmt
a = Suchstring (Windcards (?,*) sind erlaubt)
${name%%a*} entfernt alle Übereinstimmungen mit a vom Ende her
a = Suchstring (Windcard „*“ notwendig!)
${name/s/e} Suchen / Ersetzen (erste Fundstelle)
s = Suchstring (Windcards (?,*) sind erlaubt)
e = Ersatzstring (kann entfallen -> Suchstring wird entfernt)
${name//s/e} Suchen / Ersetzen (alle Fundstellen)
s = Suchstring (Windcards (?,*) sind erlaubt)
e = Ersatzstring (kann entfallen -> Suchstring wird entfernt)
${name:-a} Standardwert zurückgeben
gibt den Wert „a“ zurück, wenn die Variable „name“ leer ist
${name:=a} Standardwert setzen und zurückgeben
gibt den Wert „a“ zurück und weist diesen der Variablen „name“ zu, wenn die Variable „name“ leer ist
${name:?a} Fehlermeldung und Programmabbruch
Wenn die Variable „name“ leer ist, wird die Fehlermeldung „a“ ausgegeben und das Skript beendet.
${name:+a} liefert „a“, wenn „name“ nicht leer ist
mit dieser Funktion kann z.B. ein „/“ eingefügt werden, wenn eine Datei übergeben wird (z.B. $HOME${datei:+/}$datei )