|
发表于 2005-4-27 23:55:25
|
显示全部楼层
#我不懂这里赋值时,为什么要加双引号,而不是infile= $2,什么情况下赋值时候才加双引号,兄弟们能告诉我吗?
通常情况下赋值不用加双引号,但是在将某些特殊meta赋给变量时就需要加双引号,比如:
- zhyfly@zhyfly:~/bash$ a=eet wet
- bash: wet: command not found
- zhyfly@zhyfly:~/bash$ a="eet wet"
- zhyfly@zhyfly:~/bash$ echo $a
- eet wet
- zhyfly@zhyfly:~/bash$
复制代码
在这里,空格是作为IFS(Internal Field Seperator,通常空格,制表符,回车会作为IFS),因此必须用双引号引起才可以赋给变量!
还有单引号,双引号在shell中的简单区别就是
单引号 将所有的内容都作为普通字符处理
双引号 除了" $ \ `(反引号,键盘上1左边的键)(我就总结出这四个,不知道还有其他的吗?)外都作为普通字符处理
比如:
- zhyfly@zhyfly:~/bash$ echo "$a"
- eet wet
- zhyfly@zhyfly:~/bash$ echo '$a'
- $a
- zhyfly@zhyfly:~/bash$
复制代码
其他的想了解更多就自己搜索看吧
至于这个脚本,读起来应该不难,如果还有什么不懂再讨论好吧! |
|