shell在执行命令时,会对命令后面接着的字符进行解析。
字符分割
单词分割机制,字符之间的空格、制表符、换行符,会被看做是单词之间的界定符,它们是文本的一部分,只作为分隔符使用。分隔符将字符分割成为一个一个不同的参数。例如:“echo hello world”其实是echo命令后有两个参数,命令分别对这两个参数执行。
但将字符即文本放在双引号中,shell中除了:“$”,“\”和“`”三个特殊字符之外,文本中使用的特殊字符都讲失去特殊含义,即空格和换行符等都不被当成分隔符看待。即上文的“hello word”被当成一个参数(虽然这里输出相同)
如果要禁止所有的字符展开,即禁止shell对输入的字符进行任何解析,需要使用单引号即可。下文会说到一些字符展开。
网友评论