GNU/Linux >> Tutoriales Linux >  >> Linux

¿Diferencia entre tubería y expansión de comando?

Este enlace es relevante. ¿Cuál es la diferencia entre la sustitución y la canalización para golpear? Pero no entiendo todo lo que se dice.

¿Cuál es la diferencia entre piping command1 | command2 versus expandir comandos command2 $(command1) ? Por ejemplo

vi $(find /home | grep xyzzy)

escupe los resultados a vi para editar mientras que

find /home | grep xyzzy | vi

no parece funcionar para mí. Pero no entiendo la diferencia fundamental.

Editar

Otras publicaciones relevantes

Sustitución de proceso y tubería

Sustitución de proceso y tubería

Respuesta aceptada:

A|B

ejecuta A y B (en paralelo), y la salida estándar de A se alimenta a la entrada estándar de B. En el caso de

A $(B)

el shell ejecuta primero B, recopila la salida estándar de B, luego ejecuta A, pero para esta ejecución asigna las palabras individuales al vector ARGV de A (es decir, A puede acceder a estas palabras mediante el mecanismo argv habitual conocido de C y otros lenguajes ).

Aparte del hecho de que en ambos casos están involucrados dos programas A y B, no veo nada similar entre ellos.


Linux
  1. ¿La diferencia entre [[ $a ==Z* ]] y [ $a ==Z* ]?

  2. ¿Diferencia entre Eot y Eof?

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

  4. ¿Diferencia entre $HOME y '~' (tilde)?

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

Comprender la diferencia entre los comandos sudo y su en Linux

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

¿Cuál es la diferencia entre el comando Cat y Touch?

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

¿Cuál es la diferencia entre el comando apt y apt-get?

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