ATM my current thoughts are, to do it like this:
a_NODE=$(node -v) &
a_NPM=v$(npm -v) &
a_YARN=v$(yarn -v) &
a_CURL=v$(curl --version | head -n 1 | awk '{ print $2 }') &
wait
echo "Node: $a_NODE"
echo "NPM: $a_NPM"
echo "YARN: $a_YARN"
echo "curl: $a_CURL"
But this actually skips all the variable definitions and prints empty version strings. AFAIK the wait command should make the script wait untill all of the varbiables are set and just then go over to printing - but it doesn't.