GNU/Linux >> Tutoriels Linux >  >> Linux

Différence entre ${} et $() dans Bash

$(cmd) remplace le résultat de cmd sous forme de chaîne, alors que (cmd; cmd) exécuter une liste de commandes dans un sous-processus.

Si vous souhaitez mettre la sortie d'une ou plusieurs commandes dans une variable, utilisez le formulaire $( cmd ).

Toutefois, si vous souhaitez exécuter plusieurs commandes et les traiter comme une seule unité, utilisez le formulaire ().

Ce dernier est utile lorsque vous souhaitez exécuter un ensemble de commandes en arrière-plan :

(git pull; make clean; make all) &

Ce sont des choses différentes.

$() évalue une expression (exécution d'une commande) comme `` (backticks)

> (echo ls)
ls

> $(echo ls)
file1  file2

> `echo ls`
file1  file2

> echo $(echo ls)
ls

Ils sont différents, mais il existe une relation mnémotechnique entre eux.

(...) est une commande qui démarre un nouveau sous-shell dans lequel les commandes shell sont exécutées.

$(...) est une expression qui démarre un nouveau sous-shell, dont l'expansion est la sortie standard produite par les commandes qu'il exécute.

Ceci est similaire à une autre paire commande/expression dans bash :((...)) est une instruction arithmétique, tandis que $((...)) est une expression arithmétique.


Linux
  1. Apprenez la différence entre les commandes "su" et "su -" sous Linux

  2. Différence entre les commandes "su" et "su -" sous Linux

  3. La différence entre les commandes d'arrêt et d'arrêt ?

  4. La Différence Entre [[ $a ==Z* ]] Et [ $a ==Z* ] ?

  5. différence entre les cgroups et les espaces de noms

La différence entre plus, moins et la plupart des commandes

Différence entre la définition de variables bash avec et sans exportation

Différence entre apt et apt-get expliquée

Expliqué! La différence entre les commandes grep, egrep et fgrep

Quelle est la différence entre les commandes kill et killall ?

Différence entre les commandes 'ifconfig' et 'ip'