我是 Python 新手,尝试过谷歌搜索,但没有帮助。
我需要在管道中调用此类命令(从 mailq 获取最旧的待处理邮件):
mailq |grep "^[A-F0-9]" |sort -k5n -k6n |head -n 1
该命令在 shell 中工作。
在 Python 中,我写了以下内容:
p = subprocess.Popen( 'mailq |grep \"^[A-F0-9]\" |sort -k5n -k6n |head -n 1', shell=True,
stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT)
response = p.communicate()[0]
但我得到这样的输出:
sort: write failed: 标准输出: Broken pipe\nsort: write error\n
想知道是什么导致了这样的错误?