shell中的IFS变量

        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)一个非空白符连同其相邻的空白符序列一起构成一个分隔符。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值