Chinaunix首页 | 论坛 | 博客
  • 博客访问: 376391
  • 博文数量: 96
  • 博客积分: 647
  • 博客等级: 上士
  • 技术积分: 490
  • 用 户 组: 普通用户
  • 注册时间: 2012-09-29 22:15
文章分类
文章存档

2015年(1)

2014年(10)

2013年(26)

2012年(59)

我的朋友

分类: LINUX

2012-09-30 14:22:42

   IFS的全名为Internal Field Separator,用来在变量扩展后进行单词分割,其默认值是。可以通过cat -etv <<<"$IFS"来查看。IFS变量通常与read命令、参数扩展 以及命令替换一起使用。
bash的man page中这样写道:

        shell把IFS中的每个字符都看做一个分隔符,并用它们来将参数扩展的结果切分成word。如果IFS没有设置,或者设置为默认值,那么先前扩展的结果中,开始和末尾的空白符序列会被忽略,而其他的没有在开始和末尾的IFS字符序列用来分割word。如果IFS中含有非字符,那么位于word开头的空白符会被忽略,只要这些空白符包含在IFS的值中;IFS中的任何非空白符连同相邻的空白符划分一个field。IFS空白符序列也被当做一个分隔符。如果IFS是null,则不会进行分割。

总结:
1)IFS中的字符可以分为两类:空白符()和非空白符,两者的用法有区别:开头和结尾的空白符会被忽略,儿非空白符不能被忽略;连续的空白符被当做一个分隔符,而连续的非空白符被当做多个分隔符。
2)一个非空白符连同其相邻的空白符序列一起构成一个分隔符。
 
尊重原创!
阅读(1347) | 评论(0) | 转发(0) |
0

上一篇:该死的IFS变量

下一篇:shell编程

给主人留下些什么吧!~~