Single Quote and Double Quote Inside Shell Script
Let us review how to use single quote and double quote inside a shell script.
Following example displays an echo statement without any special character.
$ echo The test Stuff
The test Stuff
Echo statement with a special character ; . semi-colon is a command terminator in bash. In the following example, “The test” works for the echo and “Stuff” is treated as a separate Linux command and gives command not found.
$ echo The test; Stuff
-bash: Stuff: command not found
To avoid this you can add a \ in front of semi-colon, which will remove the special meaning of semi-colon and just print it as shown below.
$ echo The test\; Stuff
The test; Stuff
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
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.
\$ Literal Dollar Sign.
\´ Literal Backquote.
\” Embedded Doublequote.
\\ Embedded Backslashes.