Linux的IFS

版权声明:博客文章都是作者辛苦整理的,转载请注明出处,谢谢! https://blog.csdn.net/Quincuntial/article/details/53612259

文章作者:Tyan 博客:noahsnail.com | CSDN | 简书

1. IFS定义

Linux下有一个特殊的环境变量叫做IFS,叫做内部字段分隔符(internal field separator)。IFS环境变量定义了bash shell用户字段分隔符的一系列字符。默认情况下,bash shell会将下面的字符当做字段分隔符:空格、制表符、换行符。

2. IFS修改

Bash shell会将上面的三个字符当做列表中新字段的开始。例如,1 2 3字符串在shell中会当做三个字段1,2,3。如果想要以逗号分隔字段,则要修改IFS的值,修改如下:

IFS=','

3. Demo

  • shell脚本文件test.sh
#!/bin/bash
# test IFS

# 以逗号分割字段
IFS=','
for number in $(cat file)
do
  echo "Number $number"
done
  • test.sh用的文件file
1,2,3
  • 运行结果
$ ./test.sh 
Number 1
Number 2
Number 3

4. 注意事项

  • 在shell脚本较大时可能在某些部分需要修改IFS,而某些部分要改回默认的IFS值,操作如下
...

IFS.OLD=$IFS

...

IFS=','

...


IFS=$IFS.OLD

...
  • 需要多个符号作为分隔符,以:,;作为分隔符
IFS=':;,'

参考资料:

  1. Linux命令行与shell脚本大全

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券