Entendo que a $(...)
sintaxe de substituição de comando mais moderna é preferida à `
sintaxe antiga , devido à sintaxe de aninhamento e escape mais fácil e menos propensa a erros.
Além disso, parece que a maioria das /bin/sh
conchas de estilo no uso moderno suporta $(…)
:
- bater
- ash (e, portanto, BusyBox, para a maioria dos Linux embarcados)
- traço
- FreeBSD / bin / sh
E $(…)
é especificado pelo IEEE 1003.1.
Então, eu tenho 2 perguntas muito relacionadas:
- Existe alguma razão para usar `no novo desenvolvimento de scripts de shell, a menos que você conheça um sistema antigo específico em que o script precisará executar?
- Existe alguma razão para não ensinar os alunos de programação UNIX apenas a escrever
$(...)
e discutir`
apenas como uma variante obsoleta que eles provavelmente encontrarão se estiverem lendo os scripts de shell de outros desenvolvedores (e podem ser necessários se estiverem trabalhando com um sistema realmente antigo ou fora do padrão) por algum motivo)?
$()
- shift + 4,9, shift + 0 - 5 pressionamentos de tecla;
`...`
. Existe apenas para portabilidade reversa com o shell Bourne (como o shell Bourne tinha^
(o mesmo que|
) para portabilidade reversa com o shell Thomson). Observe, no entanto, que(t)csh
não tem$(...)
(mas não faz muito sentido usá-los ou ensiná-los).