SHELL十三问之十一:> 与 < 差在哪?

11.1BSD爱好者乐园;b8n)x1}^"x
谈到 I/O redirection ,不妨先让我们认识一下 File Descriptor (FD) 。BSD爱好者乐园lk(YBn V5Oc'O
BSD爱好者乐园 yeNg$P_-HDYj
程序的运算,在大部份情况下都是进行数据(data)的处理, 这些数据从哪读进?又送出到哪里呢?这就是 file descriptor (FD) 的功用了。BSD爱好者乐园[2d8fV4X UJ

@#gpC:u? A1shell 程序中,最常使用的 FD 大概有三个,分别为:
!@�s t6~ MeVX+D-N ][10: Standard Input (STDIN)
CS5W;j�g+RH[11: Standard Output (STDOUT)BSD爱好者乐园zi*d,A `:C^^/P
2: Standard Error Output (STDERR)

o�x-w g3e hQ3f1BSD爱好者乐园oU Yw/zS
在标准情况下,这些 FD 分别跟如下设备(device)关联:
J}g(t*Z X"DU9T2r8o1stdin(0): keyboard
&u#_OK:W)F5C�i1stdout(1): monitorBSD爱好者乐园.vy4?5e-g5/
stderr(2): monitor
BSD爱好者乐园*}F`8F#D9hC ?
BSD爱好者乐园,]~:o PM./ Ya
我们可以用如下下命令测试一下:

8Q1Zq{IBc@;{1

 

p-C+Kc0B+R+v7}'p1

$ mail -s test rootBSD爱好者乐园c+s?0Df{9y1Z:A
this is a test mail.
L(m]L_ xPjv1please skip.BSD爱好者乐园z6Ru8j-l{
^d (同时按 crtl 跟 d 键)
BSD爱好者乐园*i!?b5d&I0{N

很明显,mail 程序所读进的数据,就是从 stdin 也就是 keyboard 读进的。不过,不见得每个程序的 stdin 都跟 mail 一样从 keyboard 读进,因为程序作者可以从档案参数读进 stdin ,如:BSD爱好者乐园 FA*al+Bdw

$ cat /etc/passwd

g)A@8P`'Y#w[1

但,要是cat 之后没有档案参数则又如何呢?BSD爱好者乐园;ZACt&WS%o/O/
哦,请您自己玩玩看啰.... ^_^
BSD爱好者乐园(h[+N'zYy9N a

 

1q$B:Ko:}&r;_f(/7q1

$ catBSD爱好者乐园!j%?$I/p0v�~

(请留意数据输出到哪里去了,最后别忘了按 ^d 离开...)
_?8EU;vH1BSD爱好者乐园'la5B_PX:T4h
至于 stdout 与 stderr ,嗯... 等我有空再续吧... ^_^BSD爱好者乐园z3flsq t,`
还是,有哪位前辈要来玩接龙呢?
TOl;ONp2qB1BSD爱好者乐园(FEY3C:S#Z+O#N]
11.2BSD爱好者乐园�]2jo],K;D0s[
沿文再续,书接上一回... ^_^BSD爱好者乐园 bEn%w a g3H6j)a
BSD爱好者乐园&jz v.V9H6p,/P
相信,经过上一个练习后,你对 stdin 与 stdout 应该不难理解吧? 然后,让我们继续看 stderr 好了。
/rmf9H&x

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值