Je suis en train d'écrire un script shell (en utilisant Bash) où j'ai besoin de remplir une variable à partir du résultat renvoyé d'une autre commande.
J'utilise donc une syntaxe comme celle-ci:
VAR=`command 2>/dev/null`
Mais lors de la recherche d'informations sur les shells de script, j'ai souvent constaté que ce qui précède peut être obtenu en utilisant également la syntaxe suivante:
VAR=$(command 2>/dev/null)
Les deux fonctionnent pour moi (j'ai obtenu le résultat escompté dans les deux cas) et je me demande donc si je peux toujours utiliser les deux formulaires de manière interchangeable ou si je dois m'en tenir à un seul formulaire pour être sûr de rester conforme à l'évolution future de coquille ?
command-line
Justin
la source
la source
Réponses:
Utilisez le dollar. Les backticks sont semi-obsolètes , car ils sont plus compliqués à utiliser (voir le lien), et ils ne présentent aucun avantage, sauf si vous faites du golf de code et que vous devez absolument enregistrer un seul caractère. Ils ne seront probablement pas supprimés des obus populaires de si tôt, donc vous pouvez utiliser l'un ou l'autre pour le moment.
la source
Restez avec la notation du signe du dollar
$()
chaque fois que vous le pouvez. Les backticks deviennent lourds / déroutants lorsque vous commencez à avoir besoin de faire des devis imbriqués. Ex:Remplacer les backticks par
$()
donne la même sortie et est plus facile à lire (moins de citations d'angles variables à discerner):Cela, et chaque guillemet (guillemet simple, guillemet double, backtick) signifie quelque chose de différent dans le shell, donc l'utilisation de $ peut aider à supprimer un niveau de complexité. Et le développeur qui vous suit vous remerciera, car il / elle aura plus de facilité à comprendre ce que vous avez fait.
la source