A principal diferença é que os backticks não se encaixam: você não pode inserir um comando backticked dentro de outro. (Na verdade, você pode, mas você precisa escapar deles com uma barra invertida, e fica mais complicado a partir daí.) Essa foi, eu acredito, a principal motivação para criar a nova sintaxe $(command)
.
A sintaxe $(command)
também fornece um atalho conveniente para interpolar o conteúdo de um arquivo: $(<filename)
é equivalente a $(cat filename)
.
Outra diferença: $()
não é suportado por alguns shells comuns.