perl - 在管道 Perl 执行中捕获 tee 的参数

标签 perl unix

如何捕获管道命令的参数?

我使用:

perl my_script.pl -some_args  |  tee arg_filename

如何获取 my_script.plarg_filename 的值?

上下文
我需要在 my_script.pl 最后发送的邮件中发送此文件名。
我需要使用 tee 因为我们在 my_script.pl 内使用的标准日志记录中转储大量输出,但我们打印更多相关的内容 STDOUTSTDERR
该脚本导入并使用无法编辑的其他专有库。但它们也会生成日志。

最佳答案

简短的回答是 - 你不能。

tee 是一个单独的进程,有自己的参数。无法从该进程访问这些参数。 (好吧,我想你可以运行 ps 或其他东西)。

tee 的要点是将 STDOUT 将其中一些写入日志文件,并将其余部分沿着“管道”传递。 (如果没有其他的话,这会导致打印它)。

您可能会做的是在 Perl 脚本中实现某种日志记录方式,其中通过将一行打印到 STDOUTtee 来复制 tee 的核心功能指定的日志文件。

关于perl - 在管道 Perl 执行中捕获 tee 的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30982644/

相关文章:

perl - 设置 Net::LDAP 连接超时

algorithm - 我的流程/脚本如何避免陷入无限循环?

perl - 如何在 perl 中发现对象类型?

unix - 'find -delete' 和 'rm -rf' 之间的区别?

Perl 类的属性组成?

perl - 使用 NonStop 调试器选项时如何将 perl 脚本的调试跟踪重定向到文件?

c - Unix 上 C 中的文件写入程序停留在 508 个打开/关闭周期

bash - sed 处理烦人的文本

unix - 使用 -iwholename 查找名称中带有括号的文件

unix - 快速搜索unix目录中文件中的文本?