当前位置:   article > 正文

[Shell] BrokenPipeError: [Errno 32] Broken pipe1_pipe.stdin.write(frame.tostring()) brokenpipeerror

pipe.stdin.write(frame.tostring()) brokenpipeerror: [errno 32] broken pipe

BrokenPipeError: 管道重定向导致 stdout 错误
具体错误信息如下:
Exception ignored in: <_io.TextIOWrapper name=’’ mode=‘w’ encoding=‘utf-8’> BrokenPipeError: [Errno 32] Broken pipe
1
导致出问题的地方:

if eval "$diff_command" | $CLANG_FORMAT_DIFF_SCRIPT -p1 | grep -q . &>/dev/null; then
  • 1

若 $CLANG_FORMAT_DIFF_SCRIPT 中打印没有执行完时,外面的命令直接重定向或者关闭终端会发生以下错误

Traceback (most recent call last):
  File "/home/xxx/clang-format-diff.py", line 384, in <module>
    main()
  File "/home/xxx/clang-format-diff.py", line 373, in main
    sys.stdout.write(diff_string)
BrokenPipeError: [Errno 32] Broken pipe
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

解决方法
不使用管道

diff_result=$(eval "$diff_command")
clang_format_diff_result=$($CLANG_FORMAT_DIFF_SCRIPT -p1 <<< "$diff_result")
if [ -n "$clang_format_diff_result" ]; then
  • 1
  • 2
  • 3
本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/黑客灵魂/article/detail/850889
推荐阅读
相关标签
  

闽ICP备14008679号