How does the leading dollar sign affect single quotes in Bash?

Viewed 25725

I need to pass a string to a program as its argument from the Bash CLI, e.g

program "don't do this"

The string may include any character like '$', '\', etc. and I don't want Bash to do any modification. So I think about using single quotes.

However the following does not work:

 program 'don\'t do this'            //escape doesn't work in single quote

While the following two works:

 program $'dont\'t do this'          //seems fine, but any other side effects?
 program 'dont'\''do this'           //breaking into 3 parts

The first approach seems better in that it acquires less pre modification (put the dollar symbol in front and substitute every \ to \\), but I don't know what else the DOLLAR SIGN might do.

I've really googled this but I can't find what I need...

3 Answers
Related