我试图在 python 中调用一个 shell 脚本,但它一直在报告损坏的管道错误(结果是好的,但我不想在 STDERR 中看到错误消息)。我已经查明了原因,并且可以将其复制为以下代码段:
subprocess.call('cat /dev/zero | head -c 10 | base64', shell=True)
啊啊啊啊啊啊==
猫:写错误:断管
/dev/zero
是一个无限流,但head -c 10
只有从它读取 10 个字节并退出,然后 cat 将获得 SIGPIPE 因为对等方已关闭管道。当我在 shell 中运行命令时没有损坏管道错误消息,但为什么 python 显示它?