Let's say I have the following two shell scripts:#!/bin/sh#This script is named: args.shecho 1 \Two words\ 3, and:#!/bin/sh#This script is named: test.shecho Argument 1: $1echo Argument 2: $2echo Argument 3: $3When I call the scripts as:sh test.sh $(sh args.sh), I recieve:Argument 1: 1Argument 2: TwoArgument 3: wordsWhen I expected instead to get:Argument 1: 1Argument 2: Two wordsArgument 3: 3Copying the output of sh args.sh and pasting it as the input of sh test.sh works just fine; so I assume this isn't actually what the shell is doing.  I can achieve the desired/expected output by calling sh args.sh | xargs sh test.sh instead.However, I'm wondering if there's an equivalent way of doing this without piping the output of the first script (args.sh) to xargs?  I want the scripts to be called in the original order; the argument script to output the parameters to the second.  I'm also looking for an explanation as to why this call doesn't work as expected?
Shell script output incorrectly splitting while being passed as an argument to script
shell;shell script;quoting