GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cuál es la diferencia de obtener salida de comando usando `command` y $(command) en Shell?

Esta pregunta ya tiene respuestas aquí :¿Cuál es la diferencia entre $(cosas) y `cosas`?

(6 respuestas)
Cerrado hace 7 años.

¿Cuál es la diferencia entre recopilar una salida de comando en el script de Shell usando `comando` y $(comando)? Por ejemplo:

# IP1=$(ifconfig eth0 | grep -e "inet " | cut -d: -f2 | awk '{print $1}')
# IP2=`ifconfig eth0 | grep -e "inet " | cut -d: -f2 | awk '{print $1}'`
# echo $IP1 $IP2
> 192.241.145.112 192.241.145.112

Respuesta aceptada:

La principal diferencia es que los acentos graves no se anidan:no puede incrustar un comando con acento grave dentro de otro. (En realidad, puede, pero debe hacer una barra invertida y escapar de ellos, y se vuelve más complicado a partir de ahí). Esa fue, creo, la principal motivación para crear la nueva sintaxis $(command) .

El $(command) La sintaxis también proporciona un atajo conveniente para interpolar el contenido de un archivo:$(<filename) es equivalente a $(cat filename) .

Otra diferencia:$() no es compatible con algunos shells comunes.


Linux
  1. ¿Cómo asignar la salida de un comando a una variable de shell?

  2. ¿El punto del comando externo `cd`?

  3. ¿Salida del comando "último"?

  4. Linux:¿cuál es la diferencia entre `su -` y `su –login`?

  5. 3 trucos para obtener la salida de múltiples comandos en la misma fila

8 formas de obtener ayuda en el shell de Linux

Obtener el complemento del resultado de un comando Ls?

¿Cómo puedo recorrer la salida de un comando de shell?

Obtenga la primera línea de la salida de un comando de shell

¿Diferencia entre '{}' y {} en el comando de búsqueda?

Redirigir la salida del comando en la ventana acoplable