In a command like:
mv $SOURCE $TARGET
the two arguments must be doublely quoted:
mv "$SOURCE" "$TARGET"
That way, if $SOURCE is, for ex., "my file", it avoid the shell to call a
command like that:
mv my file "$TARGET"
which is moving *two* files "my" and "file" to "$TARGET". With the
double-quotes, after the parameters substitution, the call is correct, with
only two arguments:
mv "my file" "target"