Also die übergebenen Paramter liest du ganz einfach mit $1 $2 $3 aus. Aber das hast du ja sicher auch schon bemerkt, sonst hättest du ja nicht in der for schleife $1 geschrieben
Das skript sieht bei mir letztendlich so aus:
Erklärung zu Zeile 3: mit dem Statement {i%$2} wird dem interpreter quasi nur gesagt das er aus der Zeichenkette $i von rechts nach links das erste aufkommen der zeichenkette $2 löschen soll. Durch die $3 dahinter soll er dann die andere Dateiendung dranhängen. Der Punkt ist ja noch vorhanden, da man ja bei der Parameterübergabe, laut deinem Beispiel, nur die Endung ohne Punkt übergibt.
Viele Grüße
Josum
EDIT: Oh, da war wohl einer schneller... nichts für ungut