首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

IFS=:冒号分隔的有关问题

2013-01-28 
IFS:冒号分隔的问题前提: cat /etc/passwd passwd.txt请教一下,下面的1)为什么没有得到想要的结果???1)

IFS=:冒号分隔的问题
前提: cat /etc/passwd > passwd.txt
请教一下,下面的1)为什么没有得到想要的结果???

1)执行后,没有得到想要的结果
#! /bin/sh

SAVEDIFS=$IFS
IFS=:
while read e1 e2 e3 
do
    echo -e "$e1\t $e2\t $e3"
done < `cat /etc/passwd`
IFS=$SAVEDIFS


2)执行后,得到想要的结果

#! /bin/sh

SAVEDIFS=$IFS
IFS=:
while read e1 e2 e3 
do
    echo -e "$e1\t $e2\t $e3"
done < passwd.txt 
IFS=$SAVEDIFS
[解决办法]
你这个问题,我觉得应该从shell语法上来讲。
输入重定向<的右边一般是文件或者文件描述符,,
遇到过这两种用法:
<file   这个就是你的2写法。
exec 6<&1   这种只是将描述符6绑定到1上。

这个说实话还是记住就好。没这种用法。


[解决办法]

引用:
前提: cat /etc/passwd > passwd.txt
请教一下,下面的1)为什么没有得到想要的结果???

1)执行后,没有得到想要的结果
#! /bin/sh

SAVEDIFS=$IFS
IFS=:
while read e1 e2 e3 
do
    echo -e "$e1\t $e2\t $e3"
done < `cat /e……


1) 不如直接改成 
cat /etc/passwd
[解决办法]
while read e1 e2 e3
do
     echo -e "$e1\t $e2\t $e3"
done

热点排行