Vendégségben voltam, s a kaja mellett finom volt a vörösbor is, így most nem merülnék részletekbe, mert csak ostobaságokat írnék. :) A quit-et valóban benéztem, nem vettem figyelembe, hogy az egy saját magad által deklarált függvény.
rm -f esetén kell a 2>/dev/null? Úgy emlékszem, a -f kapcsoló miatt akár nem létező file-ra is lehet hivatkozni, akkor sem ír hibaüzenetet. Mi több, ki is próbáltam, s valóban így van.
A "$1".??? nem jó megoldás? Ugyan nem a kérdésedre válasz, nem elég pontos, de hátha elég. Nyilván lehet szofisztikáltan is, de a fentebb említett oknál fogva most nagyon semmi kedvem gondolkodni. ;)
Van ám üres utasítás, nem kell az echo. Az üres utasítás a kettőspont, visszatérési értéke 0, azaz true. Példa:
while :; do sleep 1; done
Az utolsó kérdésedre nézd az alábbi kódot, a többit rád bízom:
a='valami.alma.doc'; echo "${a%.*}"
valami.alma
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE