小智 7
管道只是一种进程间通信 (IPC) 机制,用于将一个进程的标准输出连接到另一个进程的标准输入。
例如,当您想在文件中搜索“pax”一词时:
cat filename | grep pax
Run Code Online (Sandbox Code Playgroud)
是的,我知道您可以grep
直接使用该文件,但这并不能解释它是如何工作的,是吗?
这将cat
命令的标准输出连接到命令的标准输入grep
。cat
将文件的内容发送到其标准输出,并grep
从其标准输入读取其文件(在本例中)。通过像这样将流程连接在一起,您可以创建自己的工具,由任意数量的管段组成。像:
show_users | grep pax | awk -F: '{print $4}' | tr '[a-z]' '[A-Z]' | cut -c1-20
Run Code Online (Sandbox Code Playgroud)
甲破管是其中(通常)的数据的接收器已经关闭了连接,而发送者仍试图通过发送东西。
例如,如果您通过寻呼程序发送一个大文件(一次查看一页):
cat myfile | pager
Run Code Online (Sandbox Code Playgroud)
然后执行 a CTRL-BREAK,这可能会导致pager
进程在cat
完成使用之前关闭其输入管道。这是获得这条破损管道的一种可能性。
从粗略的谷歌搜索来看,这个特殊问题似乎与临时部署有关,给出的解决方案通常包括退出大部分软件并重新启动大部分设备。
这可能严重到足以向 Apple 报告该问题。抱怨它的开发人员越多,就越有可能采取措施来修复它。
归档时间: |
|
查看次数: |
10002 次 |
最近记录: |