我有一个 shell 管道,用于随机生成 10 个字符的密码:
cat /dev/urandom | base64 | head -c 10
我的问题是cat/dev/urandom | base64
是一个无限输出流,不会自行退出。但为什么附加 head -c 10
会使整个管道退出?我假设 cat
、base64
和 head
是 3 个独立的进程,head
如何使 cat
进程退出?
最佳答案
head
在读取所需数量后关闭输入文件。当管道从一侧关闭时,另一侧会出现写入错误;这会导致 base64
关闭,进而导致 cat
关闭。
关于linux - 为什么这个 shell 管道会退出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10031344/