Bash nested quotes and eval
That's because \'
doesn't have any special meaning within a single-quoted string; it means simply "backslash, followed by end-of-string".
One option is to use $'...'
instead of '...
'; that will let you use backslash-escapes. It would look like this:
argv="su -c $'$RVM_PATH wrapper $config_rvm \'$PASSENGER_RVM_BIN $command $options\'' web"
The downside is that if there's any chance that $RVM_PATH
, $config_rvm
, or any of the other variables could include a backslash, then it too could be interpreted as introducing a backslash-escape.