[Linux] Single quote vs. Double quote inside Shell script
Single Quote
Use single quote when you want to literally print everything inside the single quote. Even the special variables such as $HOSTNAME will be print as $HOSTNAME instead of printing the name of the Linux host.
$ echo 'Hostname=$HOSTNAME ; Current User=`whoami` ; Message=\$ is USD' Hostname=$HOSTNAME ; Current User=`whoami` ; Message=\$ is USD
Double Quote
Use double quotes when you want to display the real meaning of special variables.
$ echo "Hostname=$HOSTNAME ; Current User=`whoami` ; Message=\$ is USD" Hostname=dev-db ; Current User=ramesh ; Message=$ is USD
Double quotes will remove the special meaning of all characters except the following:
$
Parameter Substitution.`
Backquotes\$
Literal Dollar Sign.\´
Literal Backquote.\”
Embedded Doublequote.\\
Embedded Backslashes.
Reference