|
发表于 2005-5-9 16:20:30
|
显示全部楼层
首先了解shell中IFS(Interal Field Separator),shell处理一行命令的过程就是shell首先根据IFS将输入的command line分为几个字段(word),再对这些word先处理特殊meta,再重组整行。
IFS通常有三个:空格,制表键,回车
然后shell中输入的command line又分为普通纯文字literal和特殊保留字元meta,literal很简单就是通常输入的普通字符,但是meta确会比较难处理,比如你想给变量赋值this is a test
这样是不行的!(可以试试)
而这样就可以了,在这里空格就是所谓的meta,而双引号把它的meta功能给取消了,这就是双引号在这里的功能所在,说到这里总结一下:
单引号:会把所有字符meta功能取消
双引号:会把除去双引号,$,\,反引号这四个(我总结了四个)meta外的其他meta功能取消(比如空格等)
反引号:用作命令的替换,等价于$(command),但区别是嵌套的时候,反引号嵌套只能这样使用:,而$(command)则可以直接:
这样说明白了吗? |
|