I have recently heard more than one Unix user express confusion over the use of various quotation characters in interactive shell usage or when writing shell scripts. The following are some quick guidelines for their use.
The quotation marks ",', and are used to delineate strings or to interpret or escape meta-characters in the desired fashion. The backquote ` is used for interpreting a command. Although there are subtle variations within specific shells, these rules generally apply:
The backslash is used to escape or quote a single character. If it precedes a meta-character, the meta-character is interpreted literally. Single quotation marks are considered 'strong', in that all characters between them are interpreted literally. This can be useful when trying to remove files having names with spaces or meta-characters. Double quotation marks are considered 'weak', in that meta-characters retain their meaning. Finally, the backquote ` is used to interpret commands.
Code
icenine% echo $HOME
/home/mydir
icenine% echo $HOME
$HOME
icenine% ls *Windows*
a Windows filename
icenine% rm 'a Windows filename'
icenine% ls *Windows*
No match
icenine% echo $HOME
/home/mydir
icenine% echo "$HOME"
/home/mydir
icenine% echo '$HOME'
$HOME
icenine% echo To see the current directory, which is `pwd`, type in: pwd
To see the current directory, which is /home/mydir, type in: pwd icenine%