我有一个Shell脚本,它无限地执行几个二进制文件。我的任务是将这些二进制文件显示的输出重定向到带有时间戳(YY-MM-DD)的日志文件中。这项任务非常简单,但是当白天发生变化时会出现问题。这是我的问题 - 如果特定的二进制文件正在执行(尚未完成)和日期更改,则应显示的输出应记录在具有不同时间戳的2个不同文件中。例如: -
while true; do
if (current_date = new_date); then
execute binary >> log.out_$current_date
// If binary is still in the process of execution how to redirect in 2 files ???
else
execute binary >> log.out_$new_date
fi
done
必需输出是:: current_date上的文件输出,要记录在当前日志文件中,并在新日期输出文件以记录在新文件中 .....请帮忙
答案 0 :(得分:0)
只需创建另一个从二进制文件的stdout
读取的脚本,并检查每行读取后的日期
(source of outputdatescript.sh)
#!/bin/bash
while read line; do
# example made with unix data, replace it with your date string generator
date=$(date "+%s")
echo $line >> file.$date
done;
然后主脚本中的命令必须来自
execute binary >> log.out_$current_date
到
execute binary | outputdatescript.sh