I generate a bash variable containing all my args and those args contain spaces. When I launch a command with those args - eg. ls $args - quotes are not correctly interpreted. Here is an example - also creating and erasing needed files.
#!/bin/bash
f1="file n1"
f2="file n2"
# create files
touch "$f1" "$f2"
# concatenate arguments
args="\"$f1\" \"$f2\""
# Print arguments, then launch 'ls' command
echo "arguments :" $args
ls $args
# delete files
rm "$f1" "$f2"
With that, I have some "no such file" errors for "file, n1", "file and n2"
You might consider using an array for the args, something like this:
args=( "$f1" "$f2" )
ls "${args[@]}"
(The problem you're hitting at the moment is that once interpolation has happened there's no difference between intra- and inter- filename spaces.)