如何捕获管道命令的参数?
我使用:
perl my_script.pl -some_args | tee arg_filename
如何获取 my_script.pl
中 arg_filename
的值?
上下文
我需要在 my_script.pl
最后发送的邮件中发送此文件名。
我需要使用 tee
因为我们在 my_script.pl
内使用的标准日志记录中转储大量输出,但我们打印
更多相关的内容 STDOUT
和STDERR
。
该脚本导入并使用无法编辑的其他专有库。但它们也会生成日志。
最佳答案
简短的回答是 - 你不能。
tee
是一个单独的进程,有自己的参数。无法从该进程访问这些参数。 (好吧,我想你可以运行 ps
或其他东西)。
tee
的要点是将 STDOUT
将其中一些写入日志文件,并将其余部分沿着“管道”传递。 (如果没有其他的话,这会导致打印它)。
您可能会做的是在 Perl 脚本中实现某种日志记录方式,其中通过将一行打印到 STDOUT
和 tee
来复制 tee
的核心功能指定的日志文件。
关于perl - 在管道 Perl 执行中捕获 tee 的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30982644/