${variable} - это расширение обычного параметра. Скобки можно использовать для разделения имени переменной при развертывании в середине другой строки. Например, если вы хотите расширить $variablefoo , оболочка не сможет узнать, где заканчивается имя переменной. Вместо этого, используя ${variable}foo , оболочка точно знает, что вы имеете в виду.
Скобки также позволяют выполнять различные другие операции во время расширения. Ваш пример выше удаляет то, что совпадает выражение, слева. Если задана строка, такая как путь /a/b/c , она вернет c . Это фактически эквивалентно тому, что делает basename , но расширение параметров может быть более удобным и читаемым в некоторых ситуациях.
Существуют различные основные строковые операции, которые могут быть выполнены с расширением параметра. Будучи встроенной операцией, они обычно работают лучше, чем sed или awk при выполнении простых задач.
Если вы занимаетесь написанием сценариев оболочки, я советую вам прочитать это руководство на вики bash hackers.