2013-04-10 2 views
0

나는 2 진수의 파일을 무한히 실행하는 쉘 스크립트를 가지고있다. 내 작업은이 이진 파일에 표시된 출력을 타임 스탬프 (YY-MM-DD)가있는 로그 파일로 리디렉션하는 것입니다. 이 작업은 꽤 쉽지만 하루가 바뀌면 문제가 발생합니다. 이것은 내 문제입니다 - 특정 바이너리 파일이 실행 중일 때 (아직 완료되지 않은 경우) 날짜가 변경되면 출력은 다른 타임 스탬프로 2 개의 다른 파일에 기록되어야합니다. 예를 들어 : -바이너리의 디스플레이 출력을 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

그냥 이진의 stdout에서 읽을 추가 스크립트를 생성하고 모든 단일 라인은 다음 주 스크립트 명령이

에서 SUBST해야

(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 | outputdatescript.sh 
execute binary >> log.out_$current_date 

관련 문제