在 unix 中重复 stderr,特别是 ksh

发布于 2024-11-02 00:02:09 字数 265 浏览 5 评论 0原文

我正在编写 ksh 脚本。 由于我无法控制作业调度程序或访问其日志,因此我正在logging:

exec 2>>logfile  1>&2 

在文件的开头并使用log:

echo "good job"

要快速检查日志文件中的错误,如何将stderr复制到日志文件和错误文件? 我想象有新的文件描述符或 tee 或 tty 的东西?

谢谢。

I am writing ksh scripts.
Since I can not control job scheduler or access its logs, I am logging:

exec 2>>logfile  1>&2 

at the start of the file and using to log:

echo "good job"

To quickly check logfiles for errors how can I duplicate stderr to logfile and an error file?
I imagine something with new file descriptors or tee or tty?

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

一杆小烟枪 2024-11-09 00:02:09

通过这样做:

echo "good job" | tee errorlog

您将回显脚本默认输出(我想是日志文件),并且该消息也将被复制到“错误日志”。

谢谢

By doing:

echo "good job" | tee errorlog

You'll echo to the script default output (log file I suppose), and the message will be duplicated to "errorlog" as well.

Thanks

π浅易 2024-11-09 00:02:09

每次您尝试重新使用标准文件描述符时,例如:

<cmd> 1>err 2>>err 1>out

它会重写第一个定义的定义。也就是说,1 现在仅指向 out,2 指向 err。最好的选择是使用两个单独的文件(例如 err 和 out),并对输出添加时间戳并自行排序以获得组合输出。

Every time you try to re-use the standard file descriptors like :

<cmd> 1>err 2>>err 1>out

It rewrites the definition of the first definition.That is, 1 is now only pointing to out and 2 to err. Your best bet would be to use two separate files (like err and out) and timestamping the outputs and sorting it yourself to get the combined output.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文