Use double quotes around $ result and all other variables that may contain spaces and other special characters if they are to be used as one argument for a program or built-in function:
result=$(printf '%s| %-15s| %-25s| %-15s| %-15s| %-15s\n' "$result" "$size" "$name" "$visits" "$inbound" "$outbound")
If you just want to assign the result of printf to a variable (like you), you can also use
printf -v result '%s| %-15s| %-25s| %-15s| %-15s| %-15s\n' "$result" "$size" "$name" "$visits" "$inbound" "$outbound"
BTW: + =, (. bash , ).
"pipe" "done" "while read i".
echo $result
$result , printf , pipe "do du...". () .
-
result=""
for name in /var/www/* ; do
read size __ < <(du -sh "$name")
name=${name##*/}
printf -v line '| %-15s| %-25s\n' "$size" "$name"
result+=$line
done
echo "$result"
read < <(cmd) cmd | read, , . , , , .