Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.
${Parameter%Muster} und ${Parameter%%Muster}
Diese Ersetzungsexpandierungen wirken auf den Inhalt von Parameter oder Variable, nachdem das angegebenen Muster von rechts (also vom Ende) entfernt wurde.
Das einfache Prozentzeichen (%) entfernt das Muster einmalig, das doppelte (%%) entfernt alles einschließlich des ersten. Bei mit [*] oder [@] indizierten Arrays erfolgt die Bearbeitung für alle Elemente. Ganz typisch ist die Konstruktion, wenn es gilt, Pfade, Dateinamen und Zeichenketten aufzutrennen, Extensionen zu entfernen. Anwendungen sehen beispielsweise so aus:
${range%%-*}
dirname=${dirname%%.*}
machine[i]=${file%%:*}
SECT=${x%% sectors*} ; SECT=${SECT##* }
line="${line%%?}"
Im ersten Beispiel entfernt die Bash alles nach dem ersten Minuszeichen, im zweiten wird im Array machine alles nach dem ersten Doppelpunkt gelöscht. Das letzte Beispiel entfernt mit %%? nur das letzte Zeichen einer Zeile. Typisch ist auch die Kombination von %% mit ##, wie sie das SECT-Beispiel zeigt.