如何捕获管道命令的参数?
我用:
arg_filename
如何在my_script.pl
中获取my_script.pl
的值?
CONTEXT
我需要在tee
最后发送的邮件中发送此文件名
我需要使用my_script.pl
因为我们在print
内部使用的标准日志记录中转储了大量输出,但我们在STDOUT
和STDERR
上{{1}}了更多相关内容。
此脚本导入并使用无法编辑的其他专有库。但他们也生成日志。
答案 0 :(得分:3)
简短的回答是 - 你做不到。
tee
是一个独立的过程,它有自己的参数。无法从该进程访问这些参数。 (好吧,我想你可以运行ps
或者什么)。
tee
的要点是将STDOUT
写入日志文件,并将其余内容传递给“管道”。 (如果没有别的话,会导致打印)。
您可能要做的是在perl脚本中实现某种方式的日志记录,其中tee
的核心功能通过在STDOUT
和指定的日志文件上打印一行来复制。
答案 1 :(得分:0)
如果我必须"作弊",我可能会尝试类似于:
#!/bin/sh
MYLOG=/tmp/logfile
export MYLOG
perl my_script.pl -some_args | tee $MYLOG
也就是说,在调用tee
或perl
之前,请获取tee
文件的名称。其他人的答案都更正确;我只提到这个作为对策。