e36freak 1333170849 learn <<<$(command) is pointless. It creates multiple temp files, requires the entire command to run before passing it to stdin, and removes trailing newlines from the command's output. That's what process substition was created for. See http://mywiki.wooledge.org/ProcessSubstitution e36freak 1333171399 forget e36freak 1333171490 learn <<<"$(command)" is pointless. It creates multiple temp files, requires the entire command to run before passing it to stdin, and removes trailing newlines from the command's output. Without the quotes, it's even worse; wordsplitting occurs and all whitespace gets squeezed to single spaces. Process substition was created for doing this efficiently and correctly. See http://mywiki.wooledge.org/ProcessSubstitution ormaaj 1448111593 forget ormaaj 1448115629 learn This creates a temporary file and dumps the entire output of the command substitution into it before beginning execution of any commaand that reads from the herestring. It is almost always a useless construct. You probably want to use a simple pipe instead unless you have some specific reason for wanting this. izabera 1448116106 forget izabera 1448116121 learn use < <() or you'll be permabanned izabera 1583160540 forget izabera 1583160545 learn learn This creates a temporary file and dumps the entire output of the command substitution into it before beginning execution of any commaand that reads from the herestring. It is almost always a useless construct. You probably want to use a simple pipe instead unless you have some specific reason for wanting this. izabera 1583160613 forget izabera 1583160631 learn learn This creates a temporary file and dumps the entire output of the command substitution into it before beginning execution of any commaand that reads from the herestring. It is almost always a useless construct. You probably want to use a simple pipe instead unless you have some specific reason for wanting this. A proper equivalent is < <( larryv 1616254438 forget larryv 1616254441 learn cmd1 <<<$(cmd2) creates a temporary file and dumps the entire output of cmd2 into it before executing cmd1. You almost always want to use cmd1 | cmd2 instead, or cmd1 < <(cmd2) if pipelines are not an option (see !faq 24). kurahaupo 1616258543 forget kurahaupo 1616258544 learn This creates a temporary file and dumps the entire output of the command substitution into it before beginning execution of any command that reads from the herestring. It is almost always a useless construct. You probably want to use a simple pipe instead unless you have some specific reason for wanting this. A proper equivalent is < <(