если проделать в консоли
$ echo ${0}
/usr/bin/zsh
$ echo ${0##*/}
zsh
выведет текущую оболочку
если используется в скрипте то выведет имя скрипта
где нулевой параметр $0 - это имя запускаемого скрипта(в данном случае оболочки), если при запуске указывается путь то он также будет входить в имя
по параметрам командной строки детальнее смотри
тут
а по поводу ${STR##*/} смотри
parameter-expansions, если кратко то конкретно здесь он служит для выделения имени(краткого) из пути