Je crois comprendre que la $(...)
syntaxe de substitution de commandes plus moderne est préférée à la `
syntaxe basée sur l'ancienne , en raison d'une syntaxe d'imbrication et d'échappement plus facile et moins sujette aux erreurs.
De plus, il semble que la plupart /bin/sh
des shells de style moderne prennent en charge $(…)
:
- frapper
- ash (et donc BusyBox, donc la plupart des Linux embarqués)
- tiret
- FreeBSD / bin / sh
Et $(…)
est spécifié par IEEE 1003.1.
J'ai donc 2 questions très liées:
- Y a-t-il une raison d'utiliser `dans le nouveau développement de scripts shell à moins que vous ne connaissiez un ancien système spécifique sur lequel le script devra fonctionner?
- Y a-t-il une raison de ne pas enseigner aux étudiants en programmation UNIX juste à écrire
$(...)
et à discuter`
uniquement en tant que variante obsolète qu'ils rencontreront probablement s'ils lisent les scripts shell d'autres développeurs (et peuvent avoir besoin s'ils travaillent avec un système très ancien ou non standard) pour certaines raisons)?
$()
- Maj + 4,9, Maj + 0 - 5 pressions de touche;
`...`
. Il est là pour la portabilité vers l'arrière avec le shell Bourne uniquement (comme le shell Bourne avait^
(la même chose que|
) pour la portabilité vers l'arrière avec le shell Thomson). Notez cependant que(t)csh
ce n'est pas le cas$(...)
(mais cela ne sert à rien de les utiliser ou de les enseigner non plus).