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.