related to this: Preserve Quotes in bash arguments
A simple example, where I simply run a command with nohup
...
#!/bin/bash
nohup \"$@\"
You need to use an array.
cmd=( "$@" )
printf '%q\n' "${cmd[@]}"
nohup "${cmd[@]}"
Scalar variables (strings) are NUL-delimited, so they can't contain an argument list (which is, by its nature, NUL-separated).
See also the BashSheet entry on arrays, BashFAQ #5 (explaining how to use arrays), and BashFAQ #50 (explaining the pitfalls caused by not doing it this way).