你的位置:首页 > 网海拾贝

shell中的IFS变量

2015-12-12 浏览:(7860) 网海拾贝 评论(0)

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

bash的man page中这样写道:

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

总结:

1、IFS中的字符可以分为两类:空白符(<space><tab><newline>)和非空白符,两者的用法有区别:开头和结尾的空白符会被忽略,儿非空白符不能被忽略;连续的空白符被当做一个分隔符,而连续的非空白符被当做多个分隔符。

2、一个非空白符连同其相邻的空白符序列一起构成一个分隔符。

  • 发表评论
  • 查看评论
【暂无评论!】

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。