$
used in a literal context SH-1000If $
is not used specially, it is recommended to escape it.
Problematic code:
echo "$"
Correct code:
echo "\$"
Rationale:
$
is special in double quotes, but there are some cases where it's interpreted literally:
Following a backslash: echo "\$"
In a context where the shell can't make sense of it, such as at the end of the string, ("foo$"
) or before some constructs ("$'foo'"
).
To avoid relying on strange and shell-specific behavior, any $
intended to be literal should be escaped with a backslash.