Il existe deux sens différents de "obsolète".
être déconseillé: (principalement d'une fonctionnalité logicielle) être utilisable mais considéré comme obsolète et à éviter, en raison de son remplacement.
- Nouveau dictionnaire américain Oxford
Par cette définition, les backticks sont obsolètes.
Le statut obsolète peut également indiquer que la fonctionnalité sera supprimée à l'avenir.
- Wikipedia
Par cette définition, les backticks ne sont pas obsolètes.
Toujours supporté:
En citant la spécification de groupe ouvert sur les langages de commande Shell , plus précisément à la section "2.6.3 Substitution de commandes", il apparaît que les deux formes de substitution de commande, backticks ( `..cmd..`
) ou dollar parens ( $(..cmd..)
) sont toujours prises en charge dans la mesure où la spécification est appliquée .
extrait
La substitution de commande permet de substituer la sortie d’une commande à la place du nom de la commande elle-même. La substitution de commande doit se produire lorsque la commande est enfermée comme suit:
$(command)
or (backquoted version):
`command`
La coquille doit élargir la substitution de commande par la commande d' exécution dans un environnement de sous - couche (voir Execution Environment Shell) et en remplaçant la substitution de commande (le texte de commande ainsi que l'enceinte $()
ou backquotes) à la sortie standard de la commande, en supprimant des séquences d'un ou plusieurs <nouvelle ligne> caractères à la fin de la substitution. Les caractères <nouvelle ligne> incorporés avant la fin de la sortie ne doivent pas être supprimés; Cependant, ils peuvent être traités comme des délimiteurs de champ et éliminés lors de la scission de champ, en fonction de la valeur de IFS et de la citation qui est en vigueur. Si la sortie contient des octets nuls, le comportement n'est pas spécifié.
Dans le style de substitution de commande passé entre guillemets, la <barre oblique inversée> conserve son sens littéral, sauf si elle est suivie de '$', ' \`
' ou <barre oblique inversée> . La recherche de la citation correspondante doit être satisfaite par la première citation non échappée non échappée; Au cours de cette recherche, si une citation arrière non échappée est rencontrée dans un commentaire de shell, un document here, une substitution de commande incorporée du $(command)
formulaire ou une chaîne entre guillemets, des résultats non définis se produisent. Une chaîne entre guillemets simples ou guillemets doubles qui commence sans se terminer dans la `...`
séquence " " produit des résultats non définis.
Avec le $(command)
formulaire, tous les caractères suivant la parenthèse ouverte à la parenthèse fermante correspondante constituent la commande. Tout script shell valide peut être utilisé pour la commande, à l'exception d'un script composé uniquement de re-directions qui produisent des résultats non spécifiés.
Alors, pourquoi tout le monde dit que les backticks ont été déconseillés?
Parce que la plupart des cas d'utilisation devraient utiliser la forme dollar parens plutôt que les backticks. (Déconseillé dans le premier sens ci-dessus.) La plupart des sites les plus réputés (y compris U & L) affirment souvent cela aussi, tout au long de leur propos, c'est donc un conseil judicieux. Ce conseil ne doit pas être confondu avec un plan inexistant visant à supprimer le soutien des piqûres arrière des coquilles.
Remarque: ce troisième extrait (ci-dessus) montre plusieurs situations où les backtick ne fonctionnent tout simplement pas, mais la méthode la plus récente dollar parens fonctionne, en commençant par le paragraphe suivant:
De plus, la syntaxe backcoted a des restrictions historiques sur le contenu de la commande incorporée. Alors que le nouveau formulaire "$ ()" peut traiter n’importe quel type de script incorporé valide, le formulaire avec rétro-notation ne peut pas gérer certains scripts valides incluant des guillemets.
Si vous continuez à lire cette section, les échecs sont mis en surbrillance et montrent comment ils échoueraient en utilisant des backticks, mais ils fonctionnent en utilisant la nouvelle notation dollar parens.
Conclusions
Il est donc préférable que vous utilisiez des dollars parens plutôt que des backticks, mais vous n'utilisez pas quelque chose techniquement "déprécié", car dans "cela cessera de fonctionner complètement à un moment planifié".
Après avoir lu tout cela, vous devriez penser que l’utilisation de dollar parens est vivement recommandée, à moins que vous n’exigiez une compatibilité avec un véritable shell Bourne non POSIX.
cd
à accéder à un répertoire pour un exemple de la raison pour laquelle la$(...)
notation est plus facile à utiliser que les guillemets arrières imbriqués.