${variable}
é a expansão regular dos parâmetros. As chaves podem ser usadas para delimitar um nome de variável ao expandir no meio de outra cadeia. Por exemplo, se você quisesse expandir $variablefoo
, o shell não teria como saber onde o nome da variável terminaria. Ao usar ${variable}foo
, o shell sabe exatamente o que você quer dizer.
As chaves também permitem que várias outras operações sejam feitas durante a expansão. Seu exemplo acima exclui o que a expressão corresponde à esquerda. Se for dada uma string como o caminho /a/b/c
, ele retornará c
. Isso é efetivamente equivalente ao que basename
faz, mas a expansão de parâmetro pode ser mais conveniente e legível em algumas situações.
Existem várias operações básicas de string que podem ser executadas com a expansão de parâmetros. Sendo uma operação incorporada, eles geralmente têm um desempenho melhor que o sed ou o awk ao executar tarefas simples.
Se você gosta de scripts de shell, sugiro que leia este guia na wiki dos hackers.