shell 及相关 / 未分类 · 2012年6月6日

IFS(internal file separator)

bash shell 将 1空格 2 制表符 3换行符看作字段分隔符,所以有时 我们并不想让它把空格作为分隔符

10.1.5 改变字段分隔符
# 返回默认值
IFS.OLD=$IFS
IFS=$'n'
$IFS=$IFS.OLD
#!/bin/bash
IFS.OLD=$IFS
IFS=$'n'
for entry in `cat passwd`
do
echo "value is $entry -"
IFS=:
for value in $entry
do
echo "$value"
done
done
evan@vps:~$ ./t1
./t1: line 2: IFS.OLD=: command not found
value is root:x:0:0:root:/root:/bin/pdksh -
root
x
root
/root
/bin/pdksh
value is daemon:x:1:1:daemon:/usr/sbin:/bin/sh -
daemon
x
1
1
daemon
/usr/sbin
/bin/sh

http://hi.baidu.com/343237144/blog/item/1be3998dc30dade4f01f36c7.html
http://blog.csdn.net/bonny95/article/details/5742075