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