gpt4 book ai didi

bash - 在 bash 中将文本附加到 stderr 重定向

转载 作者:行者123 更新时间:2023-11-29 08:49:25 24 4
gpt4 key购买 nike

现在我正在使用 exec 将 stderr 重定向到错误日志

exec 2>> ${errorLog}

唯一的缺点是我每次运行都必须以时间戳开始,因为 exec 只是将文本直接插入日志文件。有没有一种方法可以重定向 stderr 但允许我向其附加文本,例如时间戳?

最佳答案

这很有趣。我问过一个非常了解 bash 的人,他是这样告诉我的:

 foo() { while IFS='' read -r line; do echo "$(date) $line" >> file.txt; done; };

首先,它创建了一个从标准输入读取一行原始输入的函数,而对 IFS 的赋值使其不会忽略空白。读取一行后,它会输出带有适当数据的前缀。然后你必须告诉 bash 将 stderr 重定向到那个函数:

exec 2> >(foo)

您写入 stderr 的所有内容现在都将通过 foo 函数。请注意,当您在交互式 shell 中执行此操作时,您将不再看到提示,因为它被打印到 stderr,并且 foo 中的读取是行缓冲的:)

关于bash - 在 bash 中将文本附加到 stderr 重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/420278/

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