首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

《Linux命令行与shell脚本编程大全》 第十四章 学习札记

2013-08-24 
《Linux命令行与shell脚本编程大全》 第十四章 学习笔记文件描述符缩写描述0STDIN标准输入1STDOUT标准输出2S

《Linux命令行与shell脚本编程大全》 第十四章 学习笔记
文件描述符缩写描述0STDIN标准输入1STDOUT标准输出2STDERR标准错误

?

1.STDIN

代表标准输入。对于终端界面来说,标准输入是键盘

使用输入重定向符号(<)时,Linux会用重定向指定的文件来替换标准输入文件描述符

2.STDOUT

代表标准输出。对于终端界面来说,标准输出是屏幕

3.STDERR

代表标准错误输出。默认情况下,STDOUT文件描述符和STDERR文件描述符指向同样的地方,即显示器。

重定向STDOUT并不会自动重定向STDERR

?

重定向错误 & 重定向错误和错误数据

在使用重定向符号时定义STDERR文件描述符就可以重定向错误输出。

在重定向符号后面加上and符号以及文件描述符即可

这样就将上面的log输出到标准错误中(当然,还是黑字不是红字)

永久重定向

用exec命令告诉shell脚本执行期间重定向某个文件描述符

注意:上面即使把STDOUT重定向了,依然可以将echo重定向到STDERR

在脚本中重定向输入

同上面一模一样,只是文件描述符换成了3-8

重定向文件描述符

将已经重定向的文件描述符恢复:

比如我们要恢复标准输出,基本的思路就是,使用一个文件描述符定向到标准输出,然后再把标准输出定向到其他地方,比如文件。当想把标准输出重定向回来的时候,只需将他重定向到之前使用的文件描述符那里即可。

其中的test.txt为

执行后结果:

列描述COMMAND正在运行的命令名的前9个字符PID进程的PIDUSER进程属主的登录名FD文件描述符数目以及访问类型(r=读,w=写,u=读写)TYPE文件的类型(CHR=字符型,BLK=块型,DIR=目录,REG=常规文件)DEVICE设备的设备号(主设备号和从设备号)SIZE文件大小(如果有的话)NODE本地文件的节点数NAME文件名

与STDIN、STDOUT和STDERR关联的文件类型是字符型。因为STDIN、STDOUT和STDERR文件描述符都指向终端,所以输出文件的名称就是终端的设备名。所有3种标准文件都支持读和写。

$ date | tee test.txt2013年 08月 21日 星期三 21:12:28 CST$ cat test.txt2013年 08月 21日 星期三 21:12:28 CST

tee默认会覆盖指定文件中的内容,如果想追加,那么要使用-a选项

?

1.第十五章:标准I/O:重定向和管道

?

转贴请保留以下链接

本人blog地址

http://su1216.iteye.com/

http://blog.csdn.net/su1216/

热点排行