后台进程和输出到文件

时间:2013-09-11 01:52:03

标签: linux bash

我有一个执行以下操作的bash脚本。

spinner()
{
    local pid=$1
    local delay=0.75
    local spinstr='\|/-'
    while [ "$(ps a | awk '{print $1}' | grep $pid)" ]; do
        local temp=${spinstr#?}
        printf " [%c]  " "$spinstr"
        local spinstr=$temp${spinstr%"$temp"}
        sleep $delay
        printf "\b\b\b\b\b\b"
    done
    printf "    \b\b\b\b"
}

printf "Testing for timestamps,please wait..." | tee test_report.txt

(process_1 -f $FILENAME test_1 >> test_report.txt 2>&1)&
spinner $!

printf "\n"

printf "Testing for accurate seq numbers,please wait..." | tee test_report.txt

(process_2 -f $FILENAME sequence >> test_report.txt 2>&1) &
spinner $!
printf "\n";

但是当我打开test_report.txt时,我只看到'process_2'的输出,看不到'process_1'的输出

我想这个问题确实是包含后台进程标准输出的输出文件会发生什么。?

1 个答案:

答案 0 :(得分:4)

tee test_report.txt正在覆盖它。试试tee -a test_report.txt