Внимание!
При работе со строками используются ФИГУРНЫЕ { }, а не обычные ( ) скобки.
Использование обычных скобок приведет к ошибке.
$ fname="a.tar.gz"
$ echo ${fname##*.}
gz
$ echo ${fname%.*}
a.tar
Отсюда: http://www.linux.org.ru/forum/general/2639961 (в ответах)