Shell的内部域分隔符可以是空格、制表符和换行符。它可以作为命令的分隔符用在例如read、set和for等命令中。如果在列表中使用不同的分隔符,用户可以自己定义这个符号。在修改之前将IFS原始符号的值保存在另外一个变量中,这样在需要的时候还可以还原。
见如下示例脚本:
/> cat > test9.sh
names=Stephen:Ann:Sheryl:John
#names变量包含的值用冒号分隔。
oldifs=$IFS
#保留原有IFS到oldifs变量,便于后面的还原。
IFS=":"
for friends in $names
#这是遍历以冒号分隔的names变量值。
do
echo Hi $friends
done
IFS=$oldifs
#将IFS还原为原有的值 空格。
set Jerry Tom Angela
for classmates in $* #再以原有IFS的值变量参数列表。
do
echo Hello $classmates
done