As backquotes de estilo antigo ' ' tratam as barras invertidas e aninham-se um pouco diferentes. O novo estilo $() interpreta tudo entre ( ) como um comando.
echo $(uname | $(echo cat))
Linux
echo 'uname | 'echo cat''
bash: command substitution: line 2: syntax error: unexpected end of file
echo cat
funciona se os backquotes aninhados forem ignorados:
echo 'uname | \'echo cat\''
Linux
diversão de barra invertida:
echo $(echo '\')
\
echo 'echo '\''
\
O novo estilo $() aplica-se a todas as conchas de POSIX .
Como mouviciel apontou, estilo antigo ' ' pode ser necessário para shells mais antigos.
Além do ponto de vista técnico, o estilo antigo ' ' também tem uma desvantagem visual:
- Difícil de notar:
I like $(program) better than 'program' - Facilmente confundido com uma única citação:
'''''''''''''''' - Não é tão fácil digitar (talvez nem no layout padrão do teclado)
(e SE usa ' ' para propósitos próprios, foi uma dor escrever esta resposta:)