GNU/Linux >> Znalost Linux >  >> Linux

Rozdíl mezi potrubím a rozšířením příkazů?

Tento odkaz je relevantní Jaký je rozdíl mezi substitucí a potrubím na bash, ale úplně nerozumím všemu, co se říká.

Jaký je rozdíl mezi potrubím command1 | command2 versus rozšiřující příkazy command2 $(command1) ? Například

vi $(find /home | grep xyzzy)

vyplivne výsledky do vi k úpravě, zatímco

find /home | grep xyzzy | vi

zdá se, že mi nefunguje. Ale nerozumím zásadnímu rozdílu.

Upravit

Další relevantní příspěvky

Náhrada procesu a potrubí

Náhrada procesu a potrubí

Přijatá odpověď:

A|B

provádí A a B (paralelně) a standardní výstup A je přiveden do standardního vstupu B. V případě

A $(B)

shell provede nejprve B, shromáždí standardní výstup B, pak provede A, ale pro toto provedení přiřadí jednotlivá slova ARGV-vektoru A (tj. A může k těmto slovům přistupovat obvyklým mechanismem argv známým z C a dalších jazyků ).

Kromě toho, že se v obou případech jedná o dva programy A a B, nevidím mezi nimi nic podobného.


Linux
  1. Rozdíl mezi [[ $a ==Z* ]] a [ $a ==Z* ]?

  2. Jaký je rozdíl mezi příkazem locate a find v Linuxu

  3. Rozdíl mezi $HOME a '~' (tilda)?

  1. Rozdíl mezi ‚A‘ na příkazovém řádku (bash)??

  2. Rozdíl mezi '{}' a {} v příkazu find?

  3. Rozdíl mezi cp -r a cp -R (příkaz kopírování)

  1. Rozdíl mezi Eot a Eof?

  2. Rozdíl mezi [0-9], [[:digit:]] a D?

  3. Rozdíl mezi Snat a Masquerade?