如何在2个不同的文件中隔离二进制文件的显示输出?

时间:2013-04-10 09:21:31

标签: shell unix

我有一个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上的文件输出,要记录在当前日志文件中,并在新日期输出文件以记录在新文件中 .....请帮忙

1 个答案:

答案 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