When learning shell commands, it is often difficult to tell when to use double quotation marks and when to use single quotation marks, or think that there is no difference.
In fact, there are still differences:
Both single quotes and double quotes can disable shell processing for special characters. The difference is that double quotes do not have strict single quotes. Single quotes disable all characters with special functions, while double quotes only require shell to ignore the majority. Specifically, it is the dollar sign (②), the quotation mark (③), and The backslash. These three special characters are not ignored.
The dollar sign is not ignored, which means shell also replaces variable names in double quotes.
Example:
For example, if I define a variable name = Bane, the result of ECHO $ name is Bane;
Put the variable name in double quotes, for example, Echo "the name is $ name". The result is the name is
Bane.
Put the variable name in single quotes, for example, Echo 'the name is $ name'. The result is the name is
$ Name.
For comparison, the value of the variable is referenced in double quotation marks, while that in single quotation marks is a simple string!