Ihr Ausgangspunkt, um die bash manual wäre schön, vor allem der Abschnitt über Shell Parameter Expansion wäre zu lesen.
Einige relevante Auszüge:
${parameter#word}
${parameter##word}
Das Wort wird erweitert, um ein Muster zu erzeugen, wie in Dateinamen Erweiterung (siehe Dateiname Erweiterung). Wenn das Muster den Anfang des erweiterten Parameterwert übereinstimmt, dann ist das Ergebnis der Expansion ist das erweiterte Wert des Parameters mit der kürzesten Übereinstimmungsmuster (die ‘ # ’ Fall) oder die längsten Übereinstimmungsmuster (die ‘ # # ’ Fall) gelöscht. Wenn Parameter ‘ @ ’ oder ‘ ’, die Musterentfernungsvorgang ist, wird an jedem Positions Parameter wiederum angelegt und die Expansion ist die sich ergebende Liste. Wenn Parameter ist ein Array mit variabler subscripted ‘ @ ’ oder ‘ ’, die Musterentfernungsoperation wird jedem Mitglied der wiederum Array angelegt, und die Expansion ist die sich ergebende Liste.
${parameter%word}
${parameter%%word}
Das Wort wird erweitert, um ein Muster zu erzeugen, wie in Dateierweiterung. Wenn das Muster einen hinteren Abschnitt des expandierten Wert von Parameter übereinstimmt, dann ist das Ergebnis der Expansion ist der Wert von Parameter mit dem kürzesten Anpassungsmuster (die ‘% ’ Fall) oder der längsten Übereinstimmungsmuster (die ‘% % ’ Fall) gelöscht. Wenn Parameter ‘ @ ’ oder ‘ ’, die Musterentfernungsvorgang ist, wird an jedem Positions Parameter wiederum angelegt und die Expansion ist die sich ergebende Liste. Wenn Parameter ein Array Variable ist subscripted mit ‘ @ ’ oder ‘ ’, die Musterentfernungsvorgang an jedes Mitglied des Array wiederum angelegt wird, und die Expansion ist die sich ergebende Liste.
Warum nicht das Handbuch lesen? Für bash ist es [hier] (http://linux.die.net/man/1/bash). Siehe Abschnitt "Parametererweiterung". – kaylum