【求助】关于ifs的使用问题

【求助】关于ifs的使用问题

经常见到shell 中出现IFS=: 这个东西,请问起是什么作用的      
IFS

A list of characters that separate fields; used when the shell splits words as part of expansion.      
For example:
复制内容到剪贴板
代码:
[color=blue]-(user@host:tty)-(tmp)-
[362 0] $ [/color]cat foo.sh
#!/bin/bash

var="1:2:3"

for i in $var; do
    echo $i
done

echo '----------'

oldIFS=$IFS
IFS=:
for i in $var; do
    echo $i
done

echo '----------'

IFS=$oldIFS
for i in $var; do
    echo $i
done
[color=blue]-(user@host:tty)-(tmp)-
[362 0] $ [/color]./foo.sh
1:2:3
----------
1
2
3
----------
1:2:3
[color=blue]-(user@host:tty)-(tmp)-
[362 0] $ [/color]
      
复制内容到剪贴板
代码:
[No.603 20:30:23 bash]$ set --
[No.604 20:30:27 bash]$ oldifs=$IFS
[No.605 20:31:09 bash]$ IFS=:
[No.606 20:31:15 bash]$ set 1:2:3
[No.607 20:31:19 bash]$ echo $#
1
[No.608 20:31:26 bash]$ for f in "$@";do
> echo $f
> done
1 2 3
[No.609 20:31:54 bash]$ set --
[No.610 20:32:52 bash]$ IFS=$oldifs
说明IFS只是对输出有效吗?      
复制内容到剪贴板
代码:
[No.618 20:34:37 bash]$ oldifs=$IFS
[No.619 20:38:52 bash]$ IFS=:
[No.620 20:38:58 bash]$ var="1:2:3"
[No.621 20:39:08 bash]$
[No.621 20:39:08 bash]$ echo $#
1
[No.622 20:39:11 bash]$ set $var
[No.623 20:39:20 bash]$
[No.623 20:39:20 bash]$ echo $#
3
[No.624 20:39:21 bash]$ IFS=$oldifs
[No.625 20:40:34 bash]$
[No.625 20:40:34 bash]$ set --
明白了。。。。。。      
学习了。。。。。