|
发表于 2003-5-27 23:21:36
|
显示全部楼层
文件描述符是一个整数,他代表一个打开的文件,标准的三个描述符号:stdin(标准输入:一般指键盘,),stdout(标准输出一般指屏幕输出),stderr(错误输出,也是屏幕),他们分别和3个整数0,1,2一一对应,他们通常默认是打开的,代表你的终端显示设备,如果你用了重定向,那么就改变了他们,如:
>,>>,>&,<&,这几个符号都代表重定向,那他们的文件描述符也不是原来的0,1,2.他们的输出/输入/错误就被重定向.就不是键盘/屏幕,....我就知道这些,望指教;)
重定向表:
< 重定向输入
> 重定向输出
>> 添加输出
2> 错误重定向
1>&2 把标准的输出重定向到错误所送出的地方
2>&1 把标准错误重定向到标准输出所送出的地方
例子:一个有文件描述符3,4的范本[KSH]
在命令行下运行,
先建立两个文件,filea和fileb
javalee//home/javalee/lx>echo asjdflslafjlkljl >filea
javalee//home/javalee/lx>echo asjdfljlasjdfjlasldf>fileb
写个循环,read从描述符3读取一行输入,如果成功,那么就从描述符4读取另一行,
javalee//home/javalee/lx>while read -u3 line1 && read -u4 line2
> do
> print "$line1 line2"
赋给描述符3的输入是文件filea,付给描述符4的输入是文件filea
> done 3<filea 4<fileb
执行结果
asjdflslafjlkljl:asjdfljlasjdfjlasldf |
|