É muito parecido com os backticks ''.
É chamado de substituição de comandos ( especificação posix ) e invoca um subshell. O comando nas chaves de $()
ou entre os backticks ('') é executado em uma subshell e a saída é então colocada no comando original.
Ao contrário dos backticks, o formulário $(...)
pode ser aninhado. Então você pode usar a substituição de comandos dentro de outra substituição.
Existem diferenças de aso em caracteres de escape dentro da substituição. Eu prefiro o formulário $(...)
.