GNU/Linux >> Tutoriales Linux >  >> Linux

Diferencia entre ${} y $() en Bash

$(cmd) sustituye el resultado de cmd como una cadena, mientras que (cmd; cmd) ejecutar una lista de comandos en un subproceso.

Si desea poner la salida de uno o más comandos en una variable, use el formulario $( cmd ).

Sin embargo, si desea ejecutar varios comandos y tratarlos como una sola unidad, utilice la forma ().

Este último es útil cuando desea ejecutar un conjunto de comandos en segundo plano:

(git pull; make clean; make all) &

Esas son cosas diferentes.

$() evalúa una expresión (ejecutando un comando) como `` (comillas graves)

> (echo ls)
ls

> $(echo ls)
file1  file2

> `echo ls`
file1  file2

> echo $(echo ls)
ls

Son diferentes, pero existe una relación mnemotécnica entre ellos.

(...) es un comando que inicia un nuevo subshell en el que se ejecutan los comandos del shell.

$(...) es una expresión que inicia una nueva subcapa, cuya expansión es la salida estándar producida por los comandos que ejecuta.

Esto es similar a otro par de comando/expresión en bash :((...)) es una declaración aritmética, mientras que $((...)) es una expresión aritmética.


Linux
  1. Aprenda la diferencia entre los comandos "su" y "su -" en Linux

  2. ¿Diferencia entre Shell de inicio de sesión y Shell sin inicio de sesión?

  3. ¿Diferencia entre 'y' en la línea de comando (bash)?

  4. ¿Diferencia entre Eot y Eof?

  5. ¿Diferencia entre [0-9], [[:digit:]] y D?

La diferencia entre más, menos y la mayoría de los comandos

Diferencia entre la definición de variables Bash con y sin exportación

Explicación de la diferencia entre apt y apt-get

¡Explicado! La diferencia entre los comandos grep, egrep y fgrep

¿Cuál es la diferencia entre los comandos kill y killall?

Diferencia entre los comandos 'ifconfig' e 'ip'