How to escape a single quote in single quote string in Bash?

echo 'I\'m a student'

does not work. But the following works:

echo $'I\'m a student'

From the man page of bash:

A single quote may not occur between single quotes, even when preceded
by a backslash.
….
Words of the form $’string’ are treated specially. The word
expands to string, with backslash-escaped characters replaced as
specified by the ANSI C standard.

Leave a Comment