文章作者: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=':;,'
參考資料:
- Linux命令行與shell腳本大全