gpt4 book ai didi

bash - 如何从陷阱中发球 stderr?

转载 作者:行者123 更新时间:2023-11-29 09:14:26 24 4
gpt4 key购买 nike

我想在以下脚本中记录进入 stderr 的所有内容:

#!/bin/bash
exec 2> >(tee -a file >&2)
trap '>&2 echo text; exit' INT
read

ctrl+c会触发陷阱,但输出会丢失。令人惊讶的是,使用 exec 2>> file,它将最终出现在文件中,但我还需要将其显示给用户。

如何记录 stderr,包括陷阱输出,同时仍将其显示给用户?

最佳答案

为了让 tee 忽略中断信号,可以在它之前添加一个额外的 trap '' INT:

#!/bin/bash
exec 2> >(trap '' INT; tee -a file >&2)
trap '>&2 echo text; exit' INT
read

编辑:按照 @John1024 在评论中的建议,在子 shell 中包含陷阱。

关于bash - 如何从陷阱中发球 stderr?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54836912/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com