空格对于linux的shell是一种很典型的分隔符,所以给变量赋值的时候中间不能够有空格.而单引号和双引号,都是为了解决中间有空格的问题.比如string1=this is a string,这样执行就会报错.为了避免这个问题,因此就产生了单引号和双引号. 单引号将剥夺其中的所有字符的特殊含义,阻止对所有字符的转义, 将所有的字符看做其字面的意思.而双引号会处理字符串中的'$'(参数替换),'``' or '()'(命令替换),'\' 转义字符 和算数等.所以,两者基本上没有什么区别,除非在内容