shell脚本0——一切皆文件与管道

Posted daduryi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell脚本0——一切皆文件与管道相关的知识,希望对你有一定的参考价值。

管道:grep foo /path/to/file | grep -n -k 3 | more

实际过程与我们直观认为的相反,最好通过实际过程理解。首先运行的是more,它的输入被连接至一个管道。然后是sort,并且其输出被连接至之前的那个管道。接着创建第二个管道,并且将sort的stdin连接至该管道。最后执行grep,将其stdout连接至与sort进程相连的那个管道。

当grep开始运行并输出数据时,数据顺着管道流向sort,sort处理后顺着管道输出到more,由more对管道输出的全部内容进行分页输出。在由错误的情况下,这样的过程会有不同的行为,more有错误,不会有任何事情发生,若grep键入错误,则more和sort会执行到错误被检测出来。

管道的存在使得系统中的工具在编写时假设它们处理的是文本流。”一切皆文件“的概念与4种可执行的文件操作(opne close read write)意味着Unix实际上使用了一种简洁明了的系统设计方法。shell脚本本身也是文本形式的系统实用程序。

以上是关于shell脚本0——一切皆文件与管道的主要内容,如果未能解决你的问题,请参考以下文章

Shell脚本------编程规范与变量

在 C 程序和 shell 脚本之间共享头文件

Shell编程规范与变量

Shell脚本编程规范与变量

Linux运维学习第一周总结

无法使用 C 中的命名管道与 shell 脚本通信