其他人解释得很好,我只想提供一些简单的例子。
单引号 ,以防止 shell 解释任何特殊字符。美元符号、空格、& 符号、星号和其他特殊字符在单引号内时都会被忽略。
echo 'All sorts of things are ignored in single quotes, like $ & * ; |.'
它将给出这个:
All sorts of things are ignored in single quotes, like $ & * ; |.
唯一不能放在单引号内的是单引号。
双引号的 作用与单引号类似,但双引号仍允许 shell 解释美元符号、反引号和反斜杠。众所周知,反斜杠会阻止解释单个特殊字符。如果需要将美元符号用作文本而不是变量,则双引号内的此功能非常有用。它还允许对双引号进行转义,这样它们就不会被解释为带引号的字符串的结尾。
echo "Here's how we can use single ' and double \" quotes within double quotes"
它将给出这个:
Here's how we can use single ' and double " quotes within double quotes
还可能注意到,双引号内的撇号会被忽略,否则撇号会被解释为引号字符串的开头。但是,双引号内的变量会被解释并替换为其值。
echo "The current Oracle SID is $ORACLE_SID"
它将给出这个:
The current Oracle SID is test
反引号 与单引号或双引号完全不同。反引号并非用于阻止解释特殊字符,而是强制执行其括起来的命令。执行括起来的命令后,其输出将替换原始行中的反引号。通过示例可以更清楚地了解这一点。
today=`date '+%A, %B %d, %Y'`
echo $today
它将给出这个:
Monday, September 28, 2015