Use doublequotes ( "
) no comando echo
:
echo "$f$result$s"
Isso ocorre porque o echo interpreta as variáveis como argumentos, com vários argumentos echo
imprime todos eles com um espaço entre eles.
Veja isso como um exemplo:
user@host:~$ echo this is a test
this is a test
user@host:~$ echo "this is a test"
this is a test
No primeiro, há 4 argumentos:
execve("/bin/echo", ["echo", "this", "is", "a", "test"], [/* 21 vars */]) = 0
no segundo, é apenas um:
execve("/bin/echo", ["echo", "this is a test"], [/* 21 vars */]) = 0