concatenating output with +=

tee helps.

#! /bin/bash

marker="/tmp/marker"
mystring=''
mydelimiter='::'

reset_marker(){
>"$marker"
}

for i in $(seq 10)
    do

    mystring+=$(date 2>&1 | tee "$marker")
    [ -s "$marker" ] && mystring+=$mydelimiter
    reset_marker
done

mystring+=$(echo 'hello there how are  you'  2>&1 | tee "$marker")
[ -s "$marker" ] && mystring+=$mydelimiter
reset_marker

mystring+=$(wc -l /etc/passwd  2>&1 | tee "$marker")
[ -s "$marker" ] && mystring+=$mydelimiter
reset_marker

# now to concatanate empty output from echo command

for i in $(seq 20)
do
    mystring+=$(echo  2>&1 | tee "$marker")
    [ -s "$marker" ] && mystring+=$mydelimiter
done


echo "$mystring"

echo "$(echo "$mystring" | sed -e 's/::/\n/g')"
/r/bash Thread Parent