将输出重定向到shell脚本中的新日期文件

将输出重定向到shell脚本中的新日期文件,shell,perl,Shell,Perl,我有一个shell脚本,它调用一个Perl脚本,可以运行20个多小时。因此,如果进程在06/01开始,那么它将在第二天06/02结束。下面是我用来编写输出的代码 date=`date +%Y-%m-%d` logfile="$log_filename.${date}.log" nohup run.pl >> $logfile 2>&1 & 因此,我的代码的问题是,即使日期更改,它也会将输出重定向到旧的日期文件 有没有一种通用的解决方案,我们将应用程序的stde

我有一个shell脚本,它调用一个Perl脚本,可以运行20个多小时。因此,如果进程在06/01开始,那么它将在第二天06/02结束。下面是我用来编写输出的代码

date=`date +%Y-%m-%d`
logfile="$log_filename.${date}.log"
nohup run.pl >> $logfile 2>&1 &
因此,我的代码的问题是,即使日期更改,它也会将输出重定向到旧的日期文件


有没有一种通用的解决方案,我们将应用程序的stderr/stdout通过管道传输到另一个程序,然后它将数据写入滚动日志文件。

我会将数据写入一个临时文件,并在运行结束时将其重命名。我会尝试将所有shell内容移动到Perl程序中,以便它可以控制文件名和日期格式的选择